Javaweb開發有幾年了,但是一直也沒有自己動手搭建一個springmvc的框架。雖然springboot爲開發者提供了巨大的便利,反而激起了我動手搭建springmvc框架的興趣。
---------言歸正傳-----------
準備(配置工作不做詳細說明了)
1、jdk1.8
2、eclipse
3、maven3.5
自己動手,豐衣足食。
1、eclipse中創建maven工程
右鍵新建->other->maven
->Next
->Next
填寫座標(GroupId、ArtfactId),packaging選擇war(創建爲web工程)
->Finish
生成的目錄結構如下(WebContent爲後來創建的)
2、創建WebContent目錄
右鍵->properties->project facets
Further Configuration available選項沒有顯示的話,將Dynamic Web Module勾掉,點擊apply,再勾選Dynamic Web Module,點擊apply。該選項就會顯示。
點擊Further Configuration available
勾選Generate web.xml選項->OK
生成的目錄結構如下。
3、添加pom依賴(本次只添加springmvc必須的依賴,springmvc其他功能的依賴之後陸續添加)
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.xufq</groupId>
<artifactId>springmvc-login</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<properties>
<spring-version>5.0.3.RELEASE</spring-version>
<commons-lang-version>2.1</commons-lang-version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring-version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring-version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring-version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring-version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>${spring-version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>${spring-version}</version>
</dependency>
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>${commons-lang-version}</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
4、編輯web.xml,進行項目配置。
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="springmvc-login" version="3.0">
<display-name>springmvc-login</display-name>
<welcome-file-list>
<welcome-file>/WEB-INF/webpage/page/login.html</welcome-file>
</welcome-file-list>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:config/springmvc-login-context.xml</param-value>
</context-param>
<servlet>
<servlet-name>springmvc-login</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:config/springmvc-login-servlet.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springmvc-login</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
<display-name>springmvc-login</display-name>:項目名稱
<welcome-file>/WEB-INF/webpage/page/login.html</welcome-file>:歡迎頁面
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>:父容器加載(一般會加載整個Spring容器相關的bean配置管理,如Service, Dao)
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>:子容器加載(一般會加載MVC相關的bean配置管理,如Controller)
<url-pattern>/</url-pattern>:servlet攔截的url規則
5、編輯springmvc-login-servlet.xml,配置springmvc的子容器(採用註解方式,提供了配置的便利)
<?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:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
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/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">
<context:component-scan base-package="com.xufq" />
<mvc:default-servlet-handler/>
<mvc:annotation-driven />
</beans>
<context:component-scan base-package="com.xufq" />:掃描註解的根目錄(項目中暫時只有Controller,所以沒有區分Controller和Service等的目錄,後續會調整)
<mvc:default-servlet-handler/>:靜態資源解析器(避免dispatcherServlet攔截靜態資源,歡迎頁如果是靜態資源也會被攔截。)
<mvc:annotation-driven />:<mvc:annotation-driven>會自動註冊RequestMappingHandlerMapping與RequestMappingHandlerAdapter兩個Bean,這是Spring MVC爲@Controller分發請求所必需的,並且提供了數據綁定支持
6、添加歡迎頁
7、將項目發佈到tomcat,並啓動
8、訪問項目
http://localhost:8080/springmvc-login
Springmvc框架初步搭建完畢,後續會逐步完善框架內容。