今天深圳台风来了,降了点,真尼玛热  ̄へ ̄ ̄へ ̄ ̄へ ̄ ̄へ ̄ ̄へ ̄ ̄へ ̄ ̄へ ̄ ̄へ ̄ ̄へ ̄
今天先从写一个Spring MVC的HelloWorld开始,让我们看看如何搭建起一个Spring mvc的环境并运行程序。
一、Maven环境配置
点击Window -> Preferences
如下图所示,配置settings.xml文件的位置
二、新建Maven项目
2.1 新建项目
File-New-Other,选择Dynamic web project
随后选择工作空间:
选完路径之后,我们选择构建类型,如下图:
接下来,填写工程的Group Id,Artifact Id,如下图:
这里的Group Id就是大项目的id,Arifact Id就是该项目的Id。就像一个大项目中有许多小项目组成一样。
2.2 完善目录
增加src/main/java,src/test/resources,src/test/java目录。让目录变成标准的maven结构。以下为较为详细目录结构:
src
-main
–bin 脚本库
–java java源代码文件
–resources 资源库,会自动复制到classes目录里
–filters 资源过滤文件
–assembly 组件的描述配置(如何打包)
–config 配置文件
–webapp web应用的目录。WEB-INF->web.xml、css、js等
-test
–java 单元测试java源代码文件
–resources 测试需要用的资源库
–filters 测试资源过滤库
- site Site(一些文档)
target
LICENSE.txt Project’s license
README.txt Project’s readme
工程根目录下一般就只有src和target两个目录及pom.xml
target是有存放项目构建后的文件和目录,jar包、war包、编译的class文件等。
2.3 将工程转为web工程
将工程变成web工程
此时,我们的工程还不是标准的web工程,可以在eclipse中增加web工程的特性,选择工程的Properties,选Project Facets,如下图:
这里,我们选择Dynamic Web Module,版本选择2.4,这个版本比较通用。如下图:
此时,我们看到目录中多了一个WebContent目录,由于使用maven构建,web目录是src/main/webapp,所以我们删除WebContent目录。接下来,要配置web项目的发布目录,点击右键,选择Properties,就是Deployment Assembly,如图:
2.3 pom.xml配置
1 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 2 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 3 <modelVersion>4.0.0</modelVersion> 4 <groupId>SpringMVCExample</groupId> 5 <artifactId>SpringMVCExample</artifactId> 6 <packaging>war</packaging> 7 <version>0.0.1-SNAPSHOT</version> 8 <name>SpringMVCExample Maven Webapp</name> 9 <url>http://maven.apache.org</url> 10 <dependencies> 11 12 <!-- spring需要的jar包 --> 13 <dependency> 14 <groupId>org.springframework</groupId> 15 <artifactId>spring-context</artifactId> 16 <version>3.2.4.RELEASE</version> 17 <type>jar</type> 18 </dependency> 19 20 <dependency> 21 <groupId>org.springframework</groupId> 22 <artifactId>spring-core</artifactId> 23 <version>3.2.4.RELEASE</version> 24 <type>jar</type> 25 </dependency> 26 27 <dependency> 28 <groupId>org.springframework</groupId> 29 <artifactId>spring-beans</artifactId> 30 <version>3.2.4.RELEASE</version> 31 <type>jar</type> 32 </dependency> 33 34 <dependency> 35 <groupId>org.springframework</groupId> 36 <artifactId>spring-webmvc</artifactId> 37 <version>3.2.4.RELEASE</version> 38 <type>jar</type> 39 </dependency> 40 41 <dependency> 42 <groupId>org.springframework</groupId> 43 <artifactId>spring-orm</artifactId> 44 <version>3.2.4.RELEASE</version> 45 <type>jar</type> 46 </dependency> 47 48 <!-- 连接MySQL数据库需要的jar包 --> 49 <dependency> 50 <groupId>mysql</groupId> 51 <artifactId>mysql-connector-java</artifactId> 52 <version>5.1.34</version> 53 </dependency> 54 </dependencies> 55 </project>
三、SpringMVC配置
3.1 web.xml配置
A 配置web.xml,使其具有springmvc特性,主要配置两处,一个是ContextLoaderListener,一个是DispatcherServlet。代码如下:
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <servlet> <servlet-name>default</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app> web.xml
A1 配置ContextLoaderListener表示,该工程要以spring的方式启动。启动时会默认在/WEB-INF目录下查找applicationContext.xml作为spring容器的配置文件,这里可以初始化一些bean,如DataSource。我们这里什么也不做。代码如下:
1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> 3 <beans> 4 </beans>
A2 配置DispatcherServlet表示,该工程将采用springmvc的方式。启动时也会默认在/WEB-INF目录下查找XXX-servlet.xml作为配置文件,XXX就是DispatcherServlet的名字,该文件中将配置两项重要的mvc特性:
HandlerMapping,负责为DispatcherServlet这个前端控制器的请求查找Controller;
ViewResolver,负责为DispatcherServlet查找ModelAndView的视图解析器。
1 <?xml version="1.0" encoding="UTF-8"?> 2 <!-- Bean头部 --> 3 <beans xmlns="http://www.springframework.org/schema/beans" 4 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" 5 xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context" 6 xmlns:util="http://www.springframework.org/schema/util" 7 xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 8 http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd 9 http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd 10 http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.0.xsd"> 11 12 <!-- 激活@Controller模式 --> 13 <mvc:annotation-driven /> 14 <!-- 对包中的所有类进行扫描,以完成Bean创建和自动依赖注入的功能 需要更改 --> 15 <context:component-scan base-package="cc.monggo.web.controller" /> 16 17 <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" /> 18 19 <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 20 <property name="prefix"> 21 <value>/WEB-INF/jsp/</value> 22 </property> 23 <property name="suffix"> 24 <value>.jsp</value> 25 </property> 26 </bean> 27 </beans>
B DispatcherServlet应用于不同场景,可能出现多个。DispatcherServlet可以通过<context-param>方式引入,代码如下:
1 <?xml version="1.0" encoding="UTF-8"?> 2 <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 5 http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> 6 7 <!-- Spring监听器 --> 8 <listener> 9 <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 10 </listener> 11 12 <!-- Spring应用上下文,层次化的applicationContext service层,dao层, 提供公共组件 被整个应用共享 --> 13 <context-param> 14 <param-name>contextConfigLocation</param-name> 15 <param-value>classpath:applicationContext.xml</param-value> 16 </context-param> 17 18 <!-- DispatcherServlet,Spring MVC核心 controller,viewResolver,HandlerMapping --> 19 <servlet> 20 <servlet-name>SpringMVC</servlet-name> 21 <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 22 <init-param> 23 <param-name>contextConfigLocation</param-name> 24 <param-value>classpath:applicationContext-servlet.xml</param-value> 25 </init-param> 26 <load-on-startup>1</load-on-startup> 27 </servlet> 28 <servlet-mapping> 29 <servlet-name>SpringMVC</servlet-name> 30 <!-- 此处可以可以配置成*.do,*.action 对应不同需求 --> 31 <url-pattern>/</url-pattern> 32 </servlet-mapping> 33 34 35 36 37 <!-- 字符编码过滤器 --> 38 <filter> 39 <filter-name>encodingFilter</filter-name> 40 <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> 41 <init-param> 42 <param-name>encoding</param-name> 43 <param-value>UTF-8</param-value> 44 </init-param> 45 <init-param> 46 <param-name>forceEncoding</param-name> 47 <param-value>true</param-value> 48 </init-param> 49 </filter> 50 <!-- 过滤器 过滤所有请求 名字对应--> 51 <filter-mapping> 52 <filter-name>encodingFilter</filter-name> 53 <url-pattern>/*</url-pattern> 54 </filter-mapping> 55 56 <welcome-file-list> 57 <welcome-file>index.jsp</welcome-file> 58 </welcome-file-list> 59 60 </web-app>
2017-08-23
始,让我们看看如何搭建起一个Spring mvc的环境并运行程