【SpringMVC】使用Maven搭建SpringMVC项目

此博文主要是描述在Eclipse中使用Maven工具搭建SpringMVC项目,此博文是建立在【JavaWeb开发】Maven的安装配置方法(eclipse)的基础之上。

第一步,新建项目

  • 在Eclipse中依次进行新建项目:File -> New -> Other -> Maven -> Maven Project -> 点击Next -> 选择Artifact Id 为 maven-archetype-webapp -> Next -> Group Id填写自己的域名,例如笔者的 com.baofeidyz | Artifact Id填写自己的项目名称,比如笔者的WeChatSpringMVC | 其余保持默认即可 -> Finish

    如果你没有使用Maven创建过任何项目(也就是说你的repository文件夹为空),这种情况之下,Maven会下载网络资源,如果你之前配置的镜像站在国内是不可以直接访问的,即可打开的你的VPN或者代理哦。
    资源下载结束之后,大致的项目目录会是这个样子的:
    使用Maven搭建的SpringMVC项目路径简图
    这个时候会有几个错误提示,主要是由于Maven自动加载的项目并不完善,需要我们手动完善一部分的文件结构

    • 第一个,需要在main文件夹中新增一个java文件夹;
    • 第二个,需要在src文件夹中新增一个test文件夹,并且在test文件夹中创建一个java文件夹;
    • 完成后的展示图如下:
      这里写图片描述
      这里将index.jsp文件删掉了。

第二步,配置pom.xml文件

  • 默认的pom.xml文件代码如下:
<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/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.baofeidyz</groupId>
  <artifactId>WeChatSpringMVC</artifactId>
  <packaging>war</packaging>
  <version>0.0.1-SNAPSHOT</version>
      <name> </name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
  <build>
    <finalName>WeChatSpringMVC</finalName>
  </build>
</project>
  • 修改之后如下:
<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/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <!--这个groupId artifactId version name和你在新建项目的时候有关,这个不需要你做修改-->
  <groupId>com.baofeidyz</groupId>
  <artifactId>spring-mvc-study</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <name>spring-mvc-study Maven Webapp</name>
  <url>http://maven.apache.org</url>

    <!--properties相当于一个全局变量-->
    <properties>
    <!--限定编码格式-->
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <!--用slf4j.version 替代 1.7.21 非常类似于java中的全局变量,也是为了后面做修改的时候减少代码量-->
    <slf4j.version>1.7.21</slf4j.version>
    <spring.version>4.3.1.RELEASE</spring.version>
  </properties>
  <dependencies>

  <!--依赖的包,这个地方是SpringMVC,所以我填写的是org.springframework,关于这个填写的方式,可以在http://mvnrepository.com这个网站中找到,也可以在SpringMVC的网站中找到,后面也是类似的,每加载一个jar包都必须要在这个<dependencies>标签中加上,但是具体他们由依赖于哪一个包,这个就有maven这个工具自动完成了-->
  <!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>4.3.1.RELEASE</version>
    </dependency>


    <!--
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>${spring.version}</version>
    </dependency>-->

    <!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-api -->
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>${slf4j.version}</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/javax.servlet/jstl -->
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>jstl</artifactId>
        <version>1.2</version>
    </dependency>
    <!-- servlet依赖 -->
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>4.0.0-b01</version>
    </dependency>
    <dependency>
        <groupId>commons-lang</groupId>
        <artifactId>commons-lang</artifactId>
        <version>2.6</version>
    </dependency>
  </dependencies>
  <build>
    <finalName>spring-mvc-study</finalName>
  </build>
</project>

有关的说明我都写在了代码块中,所以这里就不再赘述了。

第三步,配置web.xml文件

  • 这里我直接贴出代码块,然后我将在代码块中进行解读:
<?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">
  <display-name>WeChatSpringMVC</display-name>

  <!--这个Spring应用上下文就相当于一个分支,这里我用职位来作解释说明,
  把下面的DispacherServlet看作为一个公司的经理,
  公司大大小小的事情都必须要经过他的手,然后由他来决定分给哪个部分来做,
  那么这个ApplicationContext就相当于公司的某一个部门,只能处理某一个时间,
  比如在你的网站中,他只负责处理安卓端的请求与响应,那么这个“部门”就只配置与安卓端相关的请求,
  这样在开发的工程中更容易分开协作,提升工作效率,说得比较简单,因为主要是针对需要直接配置的同学,
  如果需要有深入的理解,本人暂时还没发达到这个水平,深感抱歉-->
  <!-- Spring应用上下文,理解层次化的ApplicationContext -->
  <context-param>
  <!--名字可以随意,但是要让别人看得懂-->
    <param-name>contextConfigLocation</param-name>
    <!--这里路径比较多,其实就是在configs这个文件夹下面又创建了一个新的文件夹spring,然后在这个下面有个配置文件,这个文件夹需要自己单独创建哦,也可以设置其他想要设置的路径-->
    <param-value>/WEB-INF/configs/spring/applicationContext.xml</param-value>
  </context-param>

<!--不做修改,如果按住Ctrl+鼠标左键单机可以看到源码证明没有问题-->
  <listener>
    <listener-class>
        org.springframework.web.context.ContextLoaderListener
    </listener-class>
  </listener>

  <!--只可以修改名字和路径,其他的不建议修改-->
  <!-- DispacherServlet,Spring MVC的核心 -->
  <servlet>
    <servlet-name>mvc-dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/configs/spring/mvc-dispatcher-servlet.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>
<!--这里的mapping仅设置了一个 / 表示拦截所有-->
  <servlet-mapping>
    <servlet-name>mvc-dispatcher</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>

</web-app>

第三步结束之后,我又在webapp文件夹下面创建了一个jsp文件夹用于存放jsp文件,那么得到的目录就成了这个样子了:
这里写图片描述

第四步,配置mvc-dispatcher-servlet.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"   
       xmlns:aop="http://www.springframework.org/schema/aop"   
       xmlns:context="http://www.springframework.org/schema/context"  
       xmlns:mvc="http://www.springframework.org/schema/mvc"   
       xmlns:tx="http://www.springframework.org/schema/tx"   
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
       xsi:schemaLocation="http://www.springframework.org/schema/aop   
        http://www.springframework.org/schema/aop/spring-aop-3.0.xsd   
        http://www.springframework.org/schema/beans   
        http://www.springframework.org/schema/beans/spring-beans-3.0.xsd   
        http://www.springframework.org/schema/context   
        http://www.springframework.org/schema/context/spring-context-3.0.xsd   
        http://www.springframework.org/schema/mvc   
        http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd   
        http://www.springframework.org/schema/tx   
        http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">  

    <!-- 本配置文件是工名为mvc-dispather的DispatcherServlet使用,提供其相关的Spring MVC配置 -->

    <!-- 启用Spring基于annotation的DI,使用户可以在Spring MVC中使用强大功能。
        激活@Required @Autowired,JSR 250's @PostConstruct,@PreDestroy and @Resource 等标注 -->
    <context:annotation-config />  


    <!-- 控制层 -->
    <!-- DispatcherServlet上下文,只管理@Controller类型的bean,忽略其他类型的bean,如@Service -->
    <context:component-scan base-package="com.baofeidyz.web">
        <context:include-filter type ="annotation" expression = "org.springframework.stereotype.Controller"/>
    </context:component-scan>

    <!-- HandlerMapping,无需配置,Spring MVC可以默认启动。
        DefaultAnnotationHandlerMapping annotation-driven HandlerMapping
     -->

    <!-- 扩充了注解驱动,可以将请求参数绑定到控制器参数 -->
    <mvc:annotation-driven />  

    <!-- 静态资源配置,css,js,imgs -->
    <mvc:resources location="/resoures/"  mapping="/resources/**"/>

    <!-- view层 -->
    <!-- 配置ViewResolver 
            可以使用多个ViewResolver
            使用order属性排序
            InternalResourceViewResolver放在最后
    -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">  
        <property name = "viewClass" value = "org.springframework.web.servlet.view.JstlView"/>
        <!-- 前缀 -->
        <property name="prefix" value="/WEB-INF/jsp/" />  
        <!-- 后缀 -->
        <property name="suffix" value=".jsp" />  
    </bean>  

</beans>  

由于笔者多数都增加了注解,在此就做一部分解释,如果还是有不清楚的可以留言,笔者看到后会尽快回复的。
第一个
<!-- 控制层 -->
<!-- DispatcherServlet上下文,只管理@Controller类型的bean,忽略其他类型的bean,如@Service -->
<context:component-scan base-package="com.baofeidyz.web">
<context:include-filter type ="annotation" expression = "org.springframework.stereotype.Controller"/>
</context:component-scan>

这里的com.baofeidyz.web 表示的是一个包名,就是告诉这个DispatcherServlet,你到com.baofeidyz.web中去找你要的东西
第二个
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name = "viewClass" value = "org.springframework.web.servlet.view.JstlView"/>
<!-- 前缀 -->
<property name="prefix" value="/WEB-INF/jsp/" />
<!-- 后缀 -->
<property name="suffix" value=".jsp" />
</bean>

这里的前缀和后缀主要是方便后面在编写代码的过程中会比较方便,按照这个配置,如果jsp文件夹中有一个hellp.jsp文件,那么在java代码中只需要返回一个”hello”字符串即可跳转到这个hello.jsp文件(具体我会在后面的内容中再次阐述)

第五步,配置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: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.xsd">

        <context:annotation-config/>

        <context:component-scan base-package="com.baofeidyz.web">
            <context:exclude-filter type = "annotation"
                expression="org.springframework.stereotype.Controller"/>
        </context:component-scan>


</beans>

注意 exclude-filter 表示不处理类型为 annotation 的请求,关于这个annotation暂时不做讨论

第六步,配置java环境

  • 由于使用Maven工具包创建的项目是没有指定是否是java项目的,所以需要我们手动配置:
  • 右键项目吗->Properties->Java Build Path->Libraries->Add Library->选择 JRE System Library->Finish->转到Order and Export 勾选上 JRE System Library

第七步,测试SpringMVC是否可以运转

  • 在/src/java 中创建一个Test类,并且包名为com.baofeidyz.web 与之前的配置文件对应
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值