Spring源码——SpringMVC测试工程搭建

本文详细介绍了如何搭建一个用于测试SpringMVC源码的工程,包括新建模块、添加依赖、编写示例案例(包括Web.xml、配置文件、实体类、Controller和页面)、配置Tomcat以及运行测试的过程。在运行测试时遇到的问题和解决方案,如打包配置错误、缺少类和资源文件等,均进行了深入探讨和解决。
摘要由CSDN通过智能技术生成

前言

内容主要参考自《Spring源码深度解析》一书,算是读书笔记或是原书的补充。进入正文后可能会引来各种不适,毕竟阅读源码是件极其痛苦的事情。

本文主要涉及书中第十一章的部分,依照书中内容以及个人理解对Spring源码进行了注释,详见Github仓库:https://github.com/MrSorrow/spring-framework

本文作为正式研究SpringMVC的预热文章,主要目的是为了搭建SpringMVC源码的测试工程。为什么要单独的作为一篇文章,因为发现想要测试SpringMVC的源码和之前的工程搭建还是不太一样的,笔者也调试了很久才终于搭建成功。

本文主要对应书中的第一部分,为了演示SpringMVC的使用案例,完全是为了复现书上的测试过程,过程中出现很多问题,记录下来以便参考。

I. 新建模块

首先我们准备新建一个专门测试SpringMVC的 module,不再使用之前文章测试模块 spring-mytest,新建的模块名称我们定义为 spring-mymvc。具体步骤见图中红框。

新建模块

spring-mymvc

新建完毕后可以看到,一个新的模块就创建好了。

目录结构

II. 添加依赖

build.gradle 配置文件中添加SpringMVC的依赖,配置文件如下。

plugins {
    id 'java'
    id 'war'
}

group 'org.springframework'
version '5.1.0.BUILD-SNAPSHOT'

sourceCompatibility = 1.8

repositories {
    mavenCentral()
}

dependencies {
    compile(project(":spring-context"))
    compile(project(":spring-context-support")) // freemarker需要,不加可能报错
    compile(project(":spring-webmvc"))

    providedCompile 'javax.servlet:servlet-api:2.5'
    compile 'javax.servlet.jsp.jstl:jstl:1.2'
    compile 'org.apache.taglibs:taglibs-standard-spec:1.2.5'
    compile 'org.apache.taglibs:taglibs-standard-impl:1.2.5'
    testCompile group: 'junit', name: 'junit', version: '4.12'
}

依赖关系图如下。

依赖关系图

III. 编写示例案例

新建Web.xml

打开项目的 Project Structure 窗口,打开左侧的 FacetsArtifacts 两个窗口,删除之前创建好的内容,我们手动亲自创建一遍。

先进入 Facets 窗口,点击 + 号,选择 Web,然后会让我们选择模块。选中我们创建的 spring-mymvc-main,点击 OK

新建web.xml

新建成功后,会出现一个 Web 选项卡,点击选中,右侧会显示 web.xml 的位置。注意查看路径,IDEA默认的路径是在 .idea 目录下的,而我们最终是要在自己的测试模块的 webapp/WEB-INF/ 下的,所以要进行修改。

新建成功

点击两个路径右侧的绿色铅笔进行修改。如果没有 webapp/WEB-INF/ 目录则自行新建,最后路径末尾别忘记 web.xml,这样IDEA就会在 webapp/WEB-INF/ 目录下帮我们新建一个 web.xml

修改新建web.xml

然后修改 Web Resource Pathwebapp 目录即可。

Web Resource Path

创建完 Facets,随后创建 Artifacts

创建 Artifacts

选中我们的 spring-mymvc-main 模块,结果如下。之后我们解决问题都是在这个地方进行调整。

新建完毕

回到工程目录,此时 webapp/WEB-INF/ 目录下就存在 web.xml 文件了。修改文件内容,至于何种含义,相信会使用Spring的人不用多说。

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
         version="3.1">

   <!--Spring配置文件-->
   <context-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath:spring-config.xml</param-value>
   
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值