02.Eclipse maven构建springmvc项目

今天深圳台风来了,降了点,真尼玛热    ̄へ ̄ ̄へ ̄ ̄へ ̄ ̄へ ̄ ̄へ ̄ ̄へ ̄ ̄へ ̄ ̄へ ̄ ̄へ ̄

今天先从写一个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>
pom.xml

三、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
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>
applicationContext.xml

     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>
servlet

 

  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>
web.xml

2017-08-23

始,让我们看看如何搭建起一个Spring mvc的环境并运行程

原文地址:https://www.cnblogs.com/hy-space/p/7414500.html