Spring MVC 框架在 Java 的 Web 項目中應該是無人不知的吧,你不會搭建一個 Spring 框架?做爲身爲一個剛剛學習Java的我都會,若是你不會的話,那可真使人憂傷。html
1.在 MyEclipse 建立項目後,能夠以選擇的方式去配置
一個 Spring 項目,這裏不在討論。由於我只用 Eclipse。git
2.手動搭建。就是動手。github
1.打開 Eclipse ,在Project Explorer
選項卡下面點擊右鍵,選擇Web - Dynamic Web Prodect
(這一步應該都知道阿!!!)。web
2.點擊Next
。起一個你認爲還不錯的項目名,注意:命名很重要,把每一次命名都當作給本身孩子起名字同樣莊嚴神聖。spring
3.沒有了,完成。api
不管你用坑蒙拐騙,仍是死皮賴臉,只要你搞到 Spring 框架的 jar 包就行。我這裏給你個地址,你能夠體面的去下載就好了。地址:http://projects.spring.io/spring-framework/
找到適合本身的版本,下載下來保存到合適的位置就能夠了,就這麼簡單。解壓後,應該是這樣的:spring-mvc
你看包的命名,你可能就大體明白了這個 jar 包是幹嗎的了,接下來就是引入你須要的了。
而後,你要你須要的 jar 包,複製到項目的/WebContent/WEB-INF/lib
下,爲何要這麼作,下面會說的。緩存
記得當年一個學 Java 的朋友抱怨說: Java 天天都在導包,不如 .Net 爽。我如今並不這麼認爲。
在項目名上,點擊右鍵,Build Path - Configure Bulid Path... - Libraries - Add JARs...
,在彈出的框裏邊找到項目的/WebContent/WEB-INF/lib
,這樣就看到剛剛你複製過來的 jar 包了。架構
搭建 Spring 框架最重要的步驟應該就是配置了。官網對框架的解釋說明以下:mvc
Spring MVC 框架是圍繞一個 DispatcherServlet 來設計的,這個 Servlet 會把請求分發給各個處理器,並支持可配置的處理器映射、視圖渲染、本地化、時區與主題渲染等,甚至還能支持文件上傳。處理器是你的應用中註解了 @Controller 和 @RequestMapping 的類和方法,Spring 爲處理器方法提供了極其多樣靈活的配置。
因此,首先咱們應該在/WebContent/WEB-INF/
下新建web.xml
文件,接下來在這個文件中配置 DispatcherServlet。
<servlet> <servlet-name>springMVC</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <load-on-startup>1</load-on-startup></servlet><servlet-mapping> <servlet-name>springMVC</servlet-name> <url-pattern>/</url-pattern></servlet-mapping><context-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/applicationContext.xml</param-value></context-param>
還能夠配置字符編碼,默認啓動頁面什麼的,這裏不在配置,具體見示例項目:https://github.com/mafly/SpringDemo/blob/master/WebContent/WEB-INF/web.xml,由於這裏是把 DispatcherServlet 命名爲springMVC
,而且讓它在 Web 項目一啓動就加載。接下來咱們須要在/WebContent/WEB-INF/
目錄下建立一個springMVC-servlet.xml
的Spring配置文件。Spring官方文檔上推薦的默認的文件名是[servlet-name]-servlet.xml
文件,這裏 servlet-name 叫 springMVC ,所以,我新建了一個springMVC-servlet.xml
。
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"xmlns:context="http://www.springframework.org/schema/context"xmlns:util="http://www.springframework.org/schema/util" xmlns:mvc="http://www.springframework.org/schema/mvc"xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.2.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.2.xsd"><!-- 使用默認的註解映射 --><mvc:annotation-driven /><mvc:resources location="/" mapping="/index.html" /><!-- 自動掃描controller包中的控制器 --><context:component-scan base-package="cn.mayongfa.api.controller" /><context:component-scan base-package="cn.mayongfa.controller" /><!-- 上傳文件攔截,設置最大上傳文件大小 30M=30*1024*1024(B)=31457280 bytes --><bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <property name="maxUploadSize" value="31457280" /></bean>
具體詳見:https://github.com/mafly/SpringDemo/blob/master/WebContent/WEB-INF/springMVC-servlet.xml
咱們在web.xml
文件中定義的contextConfigLocation
,指定要裝入的 Spring 配置文件,通常文件都命名爲applicationContext.xml
,這個文件中咱們能夠進行掃描類包、讀取配置文件、數據源管理、AOP配置、緩存以及消息隊列等配置,因此,接下來就新建applicationContext.xml
文件。
<?xml version="1.0" encoding="UTF-8" ?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"xmlns:context="http://www.springframework.org/schema/context"xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd"><!-- 將多個配置文件讀取到容器中,交給Spring管理 --><bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="locations"> <list> <value>classpath:global.properties</value> <value>classpath:jdbc.properties</value> </list> </property></bean><!-- 掃描類包,將標註Spring註解的類自動轉化Bean,同時完成Bean的注入 --><context:component-scan base-package="cn.mayongfa.common" /><context:component-scan base-package="cn.mayongfa.service" /><context:component-scan base-package="cn.mayongfa.dao" /><!--master 配置數據源 --><bean id="masterDataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close"> <property name="driverClassName"> <value>${master.jdbc.driverClassName}</value> </property> <property name="url"> <value>${master.jdbc.url}</value> </property> <property name="username"> <value>${master.jdbc.username}</value> </property> <property name="password"> <value>${master.jdbc.password}</value> </property> ...</bean><!--slave 配置數據源 --><bean id="slaveDataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close"> ...</bean><bean id="dataSource" class="cn.mayongfa.service.imp.DynamicDataSource"> <property name="targetDataSources"> <map> <entry key="slave" value-ref="slaveDataSource" /> </map> </property> <property name="defaultTargetDataSource" ref="masterDataSource" /></bean><!-- 配置Jdbc模板 --><bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"> <property name="dataSource" ref="dataSource"></property></bean><!-- 配置事務管理器 -->...<!-- 經過AOP配置提供事務加強,讓service包下全部Bean的全部方法擁有事務 -->...
上面只是簡單的配置,文件並不完整,具體完整項目示例見GitHub:https://github.com/mafly/SpringDemo
到這裏,其實咱們已經配置完成了,接下來就是新建咱們須要的Package
包,來實現不一樣包來完成不一樣的事兒的。
分層的意義及優缺點我這裏不在嘮叨,按照正常的分層架構通常都會分爲 View 層、Action 層、Service 層、Dao 層,這裏咱們也是這樣作的,下面就開始新建包,.Net 下面是叫類庫。
按照這樣的方式新建就能夠了,具體的架構以下圖:
到這裏,搭建 Spring MVC 框架的工做算是完成了。接下來就是配置具體的數據源、緩存、AOP、JMS 這些東西了。祝你好運!