使用純java config來配置spring mvc方式

使用xml配置spring是大部分開發者喜歡並通用的,但是對於有代碼潔癖或者對於喜歡使用純java來配置java項目的童鞋來說,從頭到尾采用java類來配置spring mvc項目,無疑令人賞心悅目。

這次筆者采用mavan來管理項目依賴包,並采用java類來取代常用的spring-context.xml。美中不足的是由於web項目限制,web.xml這個文件還是需要的,不過其中已不再需要配置任何內容。

采用的工具主要包括:maven、myeclipse

1、使用mavan新建一個webmvc項目

在myeclipse使用 file-》new project-》maven project-》選擇webapp模板,填寫項目名稱,點擊確認

2、新建好瞭項目後

按照maven項目的風格新建主要工程目錄,包括src/main/java、src/main/resources、src/test/java、src/test/resources;按個人喜好和需要分配目錄,以上隻是一般常用的目錄結構。

3、編輯pom.xml使用maven來引入項目依賴包

主要要spring核心框架依賴包:spring-core,spring-beans,springmvc需要的spring-mvc,spring-web,以及web項目需要的javax.servlet-api,還有使用spring標記需要的spring-context和spring-context-support,spring-test是測試用。關於maven的詳細用法可查詢相關資料。

工程依賴

4、先來看看基本項目完成後的web.xml是什麼樣子的

隻有一個項目名稱的說明,沒有以為其他好多配置信息,是不是看起來很清爽。那麼為什麼一點配置都沒有,web項目在tomcat中是如何拉起spring的麼?

5、先在src/java/main下新建一個config包

裡面用來放置我們項目的配置類。

6、先編寫第一個java cofing的配置類AppInitializer

這個類繼承瞭 AbstractAnnotationConfigDispatcherServletInitializer,之前我們有個疑問,以往都是通過配置web.xml文件來關聯spring配置的,那這裡的web.xml文件裡面沒有配置,是怎麼拉起spring的呢?原因就在於這個AppInitalizer類瞭,繼承瞭AbstractAnnotationConfigDispatcherServletInitializer的AppInitalizer的作用就類似以前的spring-context.xml,並且會在web項目運行初始化被自動發現並加載,這就是java config的魅力所在瞭,不管在哪裡聲明瞭配置瞭,隻要繼承瞭AbstractAnnotationConfigDispatcherServletInitializer,它就可以被自動加載。

7、AppInitializer類需要實現三個方法

其中RootConfig和WebConfig是我們下面要新建的兩個關鍵配置類,而getServletMappings隻需要返回一個string的列表,這裡的{“/”}的意思的監聽訪問url下所有的請求。

8、RootConfig.class的內容如下

它可以放在和AppInitializer同個目錄下,主要用來配置spring的bean,這裡隻關註web項目的實現,所以暫時沒有具體內容

9、WebConfig的內容如下

也是建議放在和AppInitializer同級目錄下,用來配置DispatcherServlet。@Configuration 聲明表示這個類是spring config類,@EnablcWebMvc聲明來啟動springMVC,@ComponentScan聲明來指定java bean的掃描目錄。待會再講解這裡需要配置哪些java bean

10、WebConfig類需要繼承WebMvcConfigureAdapter類

並實現兩個基本方法。viewResolver指定瞭視圖所在目錄,視圖後綴等類型。 並通過configureDefaultServletHandling的enable()要求對靜態資源的訪問請求轉發到servlet容器的默認servlet上。

11、現在需要新建一個控制器來控制請求的轉發瞭

最簡單的配置如下,意思是將“/homepage”的請求返回home字符串。這裡雖然返回的隻是一個字符串,框架會結合之前的webconfig類的配置將其解析為WEB-INF/views目錄下的home.jsp文件。

12、這裡我們的請求轉發的基本流程就差不多結束瞭

最後要創建一個WEB-INF/views目錄,並在其下創建home.jsp文件。

13、使用maven打包項目

並使用tomcat7來運行項目看看效果。

以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。

推薦閱讀: