• 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的环境并运行程

  • 相关阅读:
    SpringBoot学习笔记(14)----应用监控-HTTP方式
    SpringBoot学习笔记(13)----使用Spring Session+redis实现一个简单的集群
    SpringBoot学习笔记(12)----SpringBoot实现多个 账号轮询发送邮件
    SpringBoot学习笔记(11)-----SpringBoot中使用rabbitmq,activemq消息队列和rest服务的调用
    SpringBoot学习笔记(8)-----SpringBoot文件上传
    SpringBoot学习笔记(7)-----CORS支持解决跨域问题
    设计模式:迭代器模式(Iterator)
    设计模式:适配器模式(Adapter)
    设计模式:状态模式(State)
    设计模式:抽象工厂模式(Abstract Factory)
  • 原文地址:https://www.cnblogs.com/hy-space/p/7414500.html
Copyright © 2020-2023  润新知