1.开发环境
IDEA:idea 2021.1.3
构建工具:maven 3.6.1
服务器:tomcat 8.0.9
Spring版本:5.2.3
2.创建maven工程
1)创建一个Java project,next,设置项目名称就好
2)添加web模块,并取名叫mvn
3)选中Create from archetype,勾选下方的webapp,然后next,finish就好。
4)在mvn包下的pom.xml设置打包方式:war,并添加项目所用到的jar包依赖
引入依赖
<dependencies>
<!-- SpringMVC -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.3.1</version>
</dependency>
<!-- 日志 -->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.3</version>
</dependency>
<!-- ServletAPI -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
<!-- Spring5和Thymeleaf整合包 -->
<dependency>
<groupId>org.thymeleaf</groupId>
<artifactId>thymeleaf-spring5</artifactId>
<version>3.0.12.RELEASE</version>
</dependency>
</dependencies>
5)在main目录下新建一个webapp目录
6)这里部署的是最核心的web.xml配置文件的位置,默认是就在main下,你要在中间添加\webapp\WEB-INF, 然后apply应用并OK。
7)然后配置web.xml
<!--配置SpringMVC的前端控制器,对浏览器发送的请求进行统一处理-->
<servlet>
<servlet-name>SpringMVC</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!--配置SpringMVC配置文件的位置和名称-->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springMVC.xml</param-value>
</init-param>
<!--将前端控制器DispatcherServlet的初始化时间提前到服务器启动时-->
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>SpringMVC</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
8)在resources下面创建一个springMVC.xml,内容先空着。
9)然后再创建一个请求控制器,在main目录下的java目录下创建一个controller,在其目录下创建一个HelloController类
在controller控制器中
10)然后在springMVC.xml文件中将以@Controller注解的这个HelloController类加入到IoC容器中。(这里解释下为什么有了web.xml还要配置指向另外的一个xml文件呢,这是因为web.xml是整个项目总的配置文件,有些时候你有很多的项目文件要配置的时候,得在web.xml文件中更改,但是这个文件很重要,是项目运行必不可少的,在修改过程中你可能会把这个文件损坏,非常的不安全,所以配置另外一个xml。这里在resources文件中可以有多个xml配置文件,一个项目对应一个xml,你可以在project structure中更换)
springMVC.xml文件中:扫描组件
<!--扫描组件-->
<context:component-scan base-package="controller"></context:component-scan>
配置视图解析器
<bean id="viewResolver" class="org.thymeleaf.spring5.view.ThymeleafViewResolver">
<property name="order" value="1"/>
<property name="characterEncoding" value="UTF-8"/>
<property name="templateEngine">
<bean class="org.thymeleaf.spring5.SpringTemplateEngine">
<property name="templateResolver">
<bean class="org.thymeleaf.spring5.templateresolver.SpringResourceTemplateResolver">
<!-- 视图前缀 -->
<property name="prefix" value="/WEB-INF/templates/"/>
<!-- 视图后缀 -->
<property name="suffix" value=".html"/>
<property name="templateMode" value="HTML5"/>
<property name="characterEncoding" value="UTF-8" />
</bean>
</property>
</bean>
</property>
</bean>
11)创建一个templates包,里面放置着前端呈现出的页面,index.html,也就是你Controller层指向的位置,返回的视图名称那里。当然这里也可以用jsp,你要用jsp呢,web.xml文件你就得把上下文配置后缀改成jsp
12)配置Tomcat服务器软件
这里VM选项中你可以像我一样,也可以选择热部署,没有要求。
点击debug按钮运行,这里点debug而不是运行,是因为我们写项目时会出错,这里用这个是可以设置断点,供程序员调试,前面配置tomcat的时候你选择热部署的话前端页面更改不需要重新启动运行。
13)最后:
这里呢一个简单的springMVC项目就完成了,最后如果你想用自己的maven,配置如下
settings下找到Maven,更改就行