rose學習

轉載自五四陳科學院[http://www.54chen.com

rose手冊第二章:配置與使用

ROSEhtml

2.1 基礎環境java

* 普通的pc機,del 380
* ubuntu 10.04基本不升級
* java version "1.6.0_29"
* eclipse
* m2clipse
* 茶一杯git

2.2 maven簡介github

* maven是基於項目對象模型(POM),能夠經過一小段描述信息來管理項目的構建,報告和文檔的軟件項目管理工具。若是你已經有十次輸入一樣的Ant targets來編譯你的代碼、jar或者war、生成javadocs,你必定會自問,是否有一個重複性更少卻能一樣完成該工做的方法。Maven便提供了這樣一種選擇,將你的注意力從做業層轉移到項目管理層。Maven項目已經可以知道如何構建和捆綁代碼,運行測試,生成文檔並宿主項目網頁。
* maven對一個項目進入了固定的默認目錄定義:
* src/main/java 寫主要的java實現
* src/main/resources 寫主要的配置文件
* src/test/java 寫test case
* src/test/resources 寫test case所須要的配置文件
* src/main/webapp [war項目特有]web項目的對外目錄
* src/main/webapp/WEB-INF [war項目特有]web項目配置web.xml目錄web

2.3 項目創建spring

* 打開eclipse(須要提早安裝好m2clipse插件)
* new -> other -> maven -> maven project
* create a simple project
* next
* group id:com.54chen
* artifact id:rose-example
* packaging: war
* finishedapache

2.4 基礎配置三步走ubuntu

1)點火:基礎的pom文件 
打開2.3創建好的項目,打開pom.xml,添加下面的段落到project中:瀏覽器

 
  1. <dependencies>  
  2.         <dependency>  
  3.             <groupId>com.54chen</groupId>  
  4.             <artifactId>paoding-rose-scanning</artifactId>  
  5.             <version>1.0-SNAPSHOT</version>  
  6.         </dependency>  
  7.   
  8.         <dependency>  
  9.             <groupId>com.54chen</groupId>  
  10.             <artifactId>paoding-rose</artifactId>  
  11.             <version>1.0-SNAPSHOT</version>  
  12.         </dependency>  
  13.   
  14.         <dependency>  
  15.             <groupId>com.54chen</groupId>  
  16.             <artifactId>paoding-rose-portal</artifactId>  
  17.             <version>1.0-SNAPSHOT</version>  
  18.         </dependency>  
  19.   
  20.         <dependency>  
  21.             <groupId>com.54chen</groupId>  
  22.             <artifactId>paoding-rose-jade</artifactId>  
  23.             <version>1.1-SNAPSHOT</version>  
  24.         </dependency>  
  25.     </dependencies>  

上述是rose環境最基礎的依賴包。再添加一點常見的編譯設置:app

 
  1. <build>  
  2.     <resources>  
  3.         <resource>  
  4.             <directory>src/main/resources</directory>  
  5.             <includes>  
  6.                 <include>**/*.*</include>  
  7.             </includes>  
  8.         </resource>  
  9.     </resources>  
  10.     <plugins>  
  11.         <plugin>  
  12.             <groupId>org.apache.maven.plugins</groupId>  
  13.             <artifactId>maven-war-plugin</artifactId>  
  14.             <version>2.0.2</version>  
  15.             <configuration>  
  16.                 <webResources>  
  17.                     <resource>  
  18.                         <targetPath>WEB-INF</targetPath>  
  19.                         <filtering>true</filtering>  
  20.                         <directory>src/main/resources</directory>  
  21.                         <includes>  
  22.                             <include>**/*.xml</include>  
  23.                             <include>**/*.properties</include>  
  24.                         </includes>  
  25.                         <targetPath>WEB-INF</targetPath>  
  26.                     </resource>  
  27.                 </webResources>  
  28.             </configuration>  
  29.         </plugin>  
  30.         <plugin>  
  31.             <groupId>org.apache.maven.plugins</groupId>  
  32.             <artifactId>maven-compiler-plugin</artifactId>  
  33.             <configuration>  
  34.                 <source>1.6</source>  
  35.                 <target>1.6</target>  
  36.                 <fork>true</fork>  
  37.                 <verbose>true</verbose>  
  38.                 <encoding>UTF-8</encoding>  
  39.                 <compilerArguments>  
  40.                     <sourcepath>  
  41.                         ${project.basedir}/src/main/java  
  42.                        </sourcepath>  
  43.                 </compilerArguments>  
  44.             </configuration>  
  45.         </plugin>  
  46.         <plugin>  
  47.             <groupId>org.apache.maven.plugins</groupId>  
  48.             <artifactId>maven-surefire-plugin</artifactId>  
  49.             <configuration>  
  50.                 <!-- 忽略測試 -->  
  51.                 <skip>true</skip>  
  52.             </configuration>  
  53.         </plugin>  
  54.     </plugins>  
  55. </build>  

上述是編譯設置,也是放在project段落裏。

2)鬆離合:必不可少的web.xml 
在src/main/webapp/WEB-INF文件夾下創建web.xml:

 
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  3.     xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"  
  4.     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"  
  5.     id="WebApp_ID" version="2.5">  
  6.     <display-name>rose-example</display-name>  
  7.     <welcome-file-list>  
  8.         <welcome-file>index.html</welcome-file>  
  9.         <welcome-file>index.htm</welcome-file>  
  10.         <welcome-file>index.jsp</welcome-file>  
  11.         <welcome-file>default.html</welcome-file>  
  12.         <welcome-file>default.htm</welcome-file>  
  13.         <welcome-file>default.jsp</welcome-file>  
  14.     </welcome-file-list>  
  15.       
  16.        
  17.     <context-param>  
  18.         <param-name>log4jConfigLocation</param-name>  
  19.         <param-value>/WEB-INF/log4j.xml</param-value>  
  20.     </context-param>  
  21.   
  22.     <listener>  
  23.         <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>  
  24.     </listener>  
  25.     <filter>  
  26.         <filter-name>roseFilter</filter-name>  
  27.         <filter-class>net.paoding.rose.RoseFilter</filter-class>  
  28.     </filter>   
  29.     <filter-mapping>  
  30.         <filter-name>roseFilter</filter-name>  
  31.         <url-pattern>/*</url-pattern>  
  32.         <dispatcher>REQUEST</dispatcher>  
  33.         <dispatcher>FORWARD</dispatcher>  
  34.         <dispatcher>INCLUDE</dispatcher>  
  35.     </filter-mapping>   
  36. </web-app>  

3)踩油門:applicationContext.xml 
src/main/resources/applicationContext.xml是spring環境的油門,全部包的掃描和啓動都在這裏定義:

 
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <beans xmlns="http://www.springframework.org/schema/beans"  
  3.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"  
  4.     xsi:schemaLocation="http://www.springframework.org/schema/beans    
  5.     http://www.springframework.org/schema/beans/spring-beans-2.5.xsd    
  6.     http://www.springframework.org/schema/context    
  7.     http://www.springframework.org/schema/context/spring-context-2.5.xsd"  
  8.     default-lazy-init="true">  
  9.   
  10.     <!-- 自動掃描 -->  
  11.     <context:annotation-config />  
  12.     <context:component-scan base-package="com.chen">  
  13.     </context:component-scan>  
  14.        
  15. </beans>  

2.5 hello world

* 在src/main/java上右鍵 -> new -> package -> name: com.chen
* 在com.chen上右鍵 -> new -> package -> com.chen.controllers [controllers是rose框架默認的加載controller的package name]
* 在com.chen.controllers上右鍵 -> new -> class -> HelloController [*Controller是rose框架默認的controller層的class後綴]
* 打開HelloController這個類
* 在public class HelloController添加註解@Path("") [Path註解是rose框架提供的標識每一個controller的對外訪問時的基礎路徑]
* 在HelloController中添加方法

 
  1. /** 
  2.  * @author 54chen(陳臻) [chenzhen@xiaomi.com czhttp@gmail.com] 
  3.  * @since 2012-4-10 上午11:14:46 
  4.  */  
  5. package com.chen.controllers;  
  6.   
  7. import net.paoding.rose.web.annotation.Path;  
  8. import net.paoding.rose.web.annotation.rest.Get;  
  9.   
  10. @Path("")  
  11. public class HelloController {  
  12.   
  13.     @Get("")  
  14.     public String index() {  
  15.         return "@hello world";  
  16.     }  
  17. }  

* [Get註解是rose框架提供的標識一個http訪問是get仍是post或者是其餘,而且會將path與get中的字符串鏈接成一個url]
* 上述代碼能夠從瀏覽器訪問:http://localhost/。
* 下述代碼能夠從瀏覽器訪問:http://localhost/hello/world [注意path與get中的參數]。

 
  1. /** 
  2.  * @author 54chen(陳臻) [chenzhen@xiaomi.com czhttp@gmail.com] 
  3.  * @since 2012-4-10 上午11:14:46 
  4.  */  
  5. package com.chen.controllers;  
  6.   
  7. import net.paoding.rose.web.annotation.Path;  
  8. import net.paoding.rose.web.annotation.rest.Get;  
  9.   
  10. @Path("/hello/")  
  11. public class HelloController {  
  12.   
  13.     @Get("world")  
  14.     public String index() {  
  15.         return "@hello world";  
  16.     }  
  17. }  

__EOF__

* 動態更新版本地址在:https://github.com/XiaoMi/rose/tree/master/chapter_2
* 文中所說起的代碼在:https://github.com/XiaoMi/rose/rose-example


原創文章如轉載,請註明:轉載自五四陳科學院[http://www.54chen.com
本文連接: http://www.54chen.com/java-ee/rose-manual-2.html

This entry was posted in  java and tagged  rose. Bookmark the  permalink.

7 Responses to 「rose手冊第二章:配置與使用」

相關文章
相關標籤/搜索