自己挖坑自己填,先挖再说,嘿嘿,挤时间填上。后面还有一篇也要补的《IDEA上快速搭建基于maven的Spring boot项目步骤》
填坑,本来前两天就补坑了,结果在其他地方又遇到问题忙着解决,拖到了今天,唉,技术还是太菜,进步之路任重道远呐。
使用工具: idea2019、maven3.5.4
1、新建项目

2、选择maven原型模版,这样生成的项目有一个大体的结构
补充:一般的maven项目工程基本结构
projectName
|_pom.xml
|_src
|_main
|_java(java源码)
|_resources(java配置文件)
|_webapp(web的文件目录)
|_test
|_java(java 测试源码)
|_resources(java 测试配置文件)

3、输入包名、项目名称,包名命名单位都有自己的要求的,自己写反正按基本的样式填一个

4.1、选择使用的maven主目录、配置文件、本地仓库,按自己的来,我的在D盘

4.2、这里要注意的就是maven的远程仓库url,如果是遇到依赖下载失败或者下载速度慢的话,优先考虑是不是这个没配对。

5、确认工程名称和目录,这里要注意,项目会直接生成在Project location内填写的路径内(如果不存在文件夹会自动创建)

6、一个maven的web项目就由idea创建完成了,当然,他结构还不完善。因为依赖导致生成失败的小伙伴可以看这里 《idea2019中maven的依赖下载被坑记录》

7.1、补全结构,补充上java、resources目录

7.2、设置刚新建的2个文件夹为专门类型的文件夹,设置之后可看到颜色上明显变化哦。


8、开始导入spring mvc依赖包,这一步开始才真正的是关于mvc项目的基本搭建配置(我是按spring+spring+mybaits配置的)。
相关包依赖可以参考我找到的这位兄弟的详细说明 《Spring:Spring的各jar包依赖及作用详解》以及这位大哥的文章 《基于Spring中各个jar包的作用及依赖(详解)》人家整理的都很用心,感谢,向他们学习了,mysql-connector-java与Mysql、Java的对应版本《mysql-connector-java与Mysql、Java的对应版本》

9、配置框架文件
主要腰配置web.xml,spring上下文,spring mvc上下文。
1、web.xml
[说明,这里的log4j没有配置完整,因为spring5.不建议使用log4j1.,建议配合log4j2],大概原因我在
我的依赖管理 《简单Spring+springMVC+Mybaits项目引入的pom依赖》也做了说明,我测试过把spring核心依赖改为4.0.5的话,
web.xml内log4j下面补上<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>项目可以运行并正常打印log4j日志


<!DOCTYPE web-app PUBLIC"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app>
<display-name>Archetype Created Web Application</display-name>
<!--web容器启动后读取log4j配置文件-->
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>/WEB-INF/configs/spring/log4j.properties</param-value>
</context-param>
<!--web容器启动后读取配置创建spring上下文-->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value> /WEB-INF/configs/spring/applicationContext.xml </param-value>
</context-param>
<listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener>
<servlet>
<servlet-name>mvc-dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!--mvc的DispatcherServlet对应上下文配置设置,如果不设置,默认为/WEB-INF/$servlet-name$-servlet.xml-->
<!--也就是如果不配置下面的参数,默认就会按servlet-name去固定的位置找配置文件-->
<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>
<servlet-mapping>
<servlet-name>mvc-dispatcher</servlet-name>
<!--mvc-dispatcher拦截所有请求--> <url-pattern>/</url-pattern>
</servlet-mapping>
<!--设置程序启动首页-->
<welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list>
<!--设置程序错误代码对应的跳转页-->
<error-page>
<error-code>500</error-code> <location>/WEB-INF/error/500err.html</location>
</error-page>
</web-app>
2、spring上下文

<?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:tx="http://www.springframework.org/schema/tx" xmlns:context="http://www.springframework.org/schema/context" 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-4.3.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.3.xsd">
<!-- 启动组件扫描,排除@Controller组件,该组件由SpringMVC配置文件扫描 -->
<context:component-scan base-package="com.demo">
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller" />
</context:component-scan>
<!--导入数据源配置文件-->
<import resource="spring-datasource.xml"/>
</beans>
3、spring mvc容器配置

<?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">
<!--配置mvc前端控制器扫描controller包内的注解 启用了该注解就无需使用<context:annotation-config/> -->
<context:component-scan base-package="com.demo.controller"></context:component-scan>
<!--对进入DispatcherServlet的URL进行筛查,如果发现是静态资源的请求, 就将该请求转由Web应用服务器默认的Servlet处理,如果不是静态资源的请求,才由DispatcherServlet继续处理-->
<mvc:default-servlet-handler/>
<!--启用后,默认会帮我们注册默认处理请求,参数和返回值的类, 其中最主要的两个类:DefaultAnnotationHandlerMapping 和 AnnotationMethodHandlerAdapter-->
<mvc:annotation-driven/>
<!--配置视图解析器,当返回绝对路径可不配置,返回相对路径拼接前缀、后缀-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/"/>
<property name="suffix" value=".jsp"/>
</bean>
</beans>
这里再额外说明下路径配置时会用到的“classpath路径”,其实就是classes路径,我这里直接用项目里的包结构和tomcatwebapp内的classes做比对,可以看到,src和resources目录下的会被加入classes目录下,当然,有一点就是classes内存放的是.class而不是.java文件。
这里要注意下,如果用的是idea,idea会采用关联的方式,在tomcat的webapps目录下可能并没有你的项目,但实际跟我这截图应该是一致的。

篇幅问题,配置到这里基本告一段落,更多详细信息另开一篇《IDEA上快速搭建基于maven的Spring MVC项目步骤[补充]》