本文参考:https://juejin.im/post/6844903768396414989#heading-6
image.png
创建完项目缺少目录和文件,需要重新添加
Spring5 传统项目SSM搭建 - 图2
重新添加完之后
image.png

配置文件

pom

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  4. <modelVersion>4.0.0</modelVersion>
  5. <groupId>me</groupId>
  6. <artifactId>springioc</artifactId>
  7. <version>1.0-SNAPSHOT</version>
  8. <packaging>war</packaging>
  9. <name>springioc Maven Webapp</name>
  10. <!-- 用来设置版本号 -->
  11. <properties>
  12. <srping.version>5.2.8.RELEASE</srping.version>
  13. <mybatis.version>3.2.8</mybatis.version>
  14. <slf4j.version>1.7.12</slf4j.version>
  15. <log4j.version>1.2.17</log4j.version>
  16. <druid.version>1.0.9</druid.version>
  17. </properties>
  18. <!-- 用到的jar包 -->
  19. <dependencies>
  20. <!-- 单元测试 -->
  21. <dependency>
  22. <groupId>junit</groupId>
  23. <artifactId>junit</artifactId>
  24. <version>4.11</version>
  25. <!-- 表示开发的时候引入,发布的时候不会加载此包 -->
  26. <scope>test</scope>
  27. </dependency>
  28. <!-- spring框架包 -->
  29. <dependency>
  30. <groupId>org.springframework</groupId>
  31. <artifactId>spring-test</artifactId>
  32. <version>${srping.version}</version>
  33. </dependency>
  34. <dependency>
  35. <groupId>org.springframework</groupId>
  36. <artifactId>spring-core</artifactId>
  37. <version>${srping.version}</version>
  38. </dependency>
  39. <dependency>
  40. <groupId>org.springframework</groupId>
  41. <artifactId>spring-oxm</artifactId>
  42. <version>${srping.version}</version>
  43. </dependency>
  44. <dependency>
  45. <groupId>org.springframework</groupId>
  46. <artifactId>spring-tx</artifactId>
  47. <version>${srping.version}</version>
  48. </dependency>
  49. <dependency>
  50. <groupId>org.springframework</groupId>
  51. <artifactId>spring-jdbc</artifactId>
  52. <version>${srping.version}</version>
  53. </dependency>
  54. <dependency>
  55. <groupId>org.springframework</groupId>
  56. <artifactId>spring-aop</artifactId>
  57. <version>${srping.version}</version>
  58. </dependency>
  59. <dependency>
  60. <groupId>org.springframework</groupId>
  61. <artifactId>spring-context</artifactId>
  62. <version>${srping.version}</version>
  63. </dependency>
  64. <dependency>
  65. <groupId>org.springframework</groupId>
  66. <artifactId>spring-context-support</artifactId>
  67. <version>${srping.version}</version>
  68. </dependency>
  69. <dependency>
  70. <groupId>org.springframework</groupId>
  71. <artifactId>spring-expression</artifactId>
  72. <version>${srping.version}</version>
  73. </dependency>
  74. <dependency>
  75. <groupId>org.springframework</groupId>
  76. <artifactId>spring-orm</artifactId>
  77. <version>${srping.version}</version>
  78. </dependency>
  79. <dependency>
  80. <groupId>org.springframework</groupId>
  81. <artifactId>spring-web</artifactId>
  82. <version>${srping.version}</version>
  83. </dependency>
  84. <dependency>
  85. <groupId>org.springframework</groupId>
  86. <artifactId>spring-webmvc</artifactId>
  87. <version>${srping.version}</version>
  88. </dependency>
  89. <!-- spring框架包 -->
  90. <!-- mybatis框架包 -->
  91. <dependency>
  92. <groupId>org.mybatis</groupId>
  93. <artifactId>mybatis</artifactId>
  94. <version>3.5.1</version>
  95. </dependency>
  96. <dependency>
  97. <groupId>org.mybatis</groupId>
  98. <artifactId>mybatis-spring</artifactId>
  99. <version>1.3.2</version>
  100. </dependency>
  101. <!-- mybatis框架包 -->
  102. <!-- 数据库驱动 -->
  103. <dependency>
  104. <groupId>mysql</groupId>
  105. <artifactId>mysql-connector-java</artifactId>
  106. <version>5.1.48</version>
  107. </dependency>
  108. <!-- 导入dbcp的jar包,用来在applicationContext.xml中配置数据库 -->
  109. <dependency>
  110. <groupId>commons-dbcp</groupId>
  111. <artifactId>commons-dbcp</artifactId>
  112. <version>1.4</version>
  113. </dependency>
  114. <!-- jstl标签类 -->
  115. <!-- <dependency>-->
  116. <!-- <groupId>jstl</groupId>-->
  117. <!-- <artifactId>jstl</artifactId>-->
  118. <!-- <version>1.2</version>-->
  119. <!-- </dependency>-->
  120. <!-- log -->
  121. <dependency>
  122. <groupId>log4j</groupId>
  123. <artifactId>log4j</artifactId>
  124. <version>${log4j.version}</version>
  125. </dependency>
  126. <dependency>
  127. <groupId>org.slf4j</groupId>
  128. <artifactId>slf4j-api</artifactId>
  129. <version>${slf4j.version}</version>
  130. </dependency>
  131. <dependency>
  132. <groupId>org.slf4j</groupId>
  133. <artifactId>slf4j-log4j12</artifactId>
  134. <version>1.7.29</version>
  135. </dependency>
  136. <!-- 连接池 -->
  137. <dependency>
  138. <groupId>com.alibaba</groupId>
  139. <artifactId>druid</artifactId>
  140. <version>1.1.23</version>
  141. </dependency>
  142. </dependencies>
  143. <build>
  144. <!-- java编译插件,如果maven的设置里配置好jdk版本就不用 -->
  145. <plugins>
  146. <plugin>
  147. <groupId>org.apache.maven.plugins</groupId>
  148. <artifactId>maven-compiler-plugin</artifactId>
  149. <version>3.8.1</version>
  150. <configuration>
  151. <source>1.8</source>
  152. <target>1.8</target>
  153. <encoding>UTF-8</encoding>
  154. </configuration>
  155. </plugin>
  156. </plugins>
  157. </build>
  158. </project>

注:以下四个配置文件都是放置在resources文件夹下

log4j.properties

  1. #日志输出级别
  2. log4j.rootLogger=debug,stdout,D,E
  3. #设置stdout的日志输出控制台
  4. log4j.appender.stdout=org.apache.log4j.ConsoleAppender
  5. #输出日志到控制台的方式,默认为System.out
  6. log4j.appender.stdout.Target = System.out
  7. #设置使用灵活布局
  8. log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
  9. #灵活定义输出格式
  10. log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} -[%p] method:[%c (%rms)] - %m%n

jdbc.properties

  1. driver=com.mysql.jdbc.Driver
  2. url=jdbc:mysql://localhost:3306/test?characterEncoding=utf8&useSSL=false
  3. #数据库的用户名
  4. username=root
  5. #数据库的密码,别像我一样不设置
  6. password=
  7. #定义初始连接数
  8. initialSize=0
  9. #定义最大连接数
  10. maxActive=20
  11. #定义最大空闲
  12. maxIdle=20
  13. #定义最小空闲
  14. minIdle=1
  15. #定义最长等待时间
  16. maxWait=60000

applicationContext.xml

这是Spring的核心配置文件,包括Spring结合Mybatis和数据源的配置信息

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xmlns:tx="http://www.springframework.org/schema/tx" xmlns:context="http://www.springframework.org/schema/context"
  5. xsi:schemaLocation="http://www.springframework.org/schema/beans
  6. http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
  7. http://www.springframework.org/schema/tx
  8. http://www.springframework.org/schema/tx/spring-tx.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
  9. <!-- 加载properties文件 -->
  10. <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
  11. <property name="location" value="classpath:jdbc.properties"/>
  12. </bean>
  13. <!-- 配置数据源 -->
  14. <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
  15. <property name="driverClassName" value="${driver}"/>
  16. <property name="url" value="${url}"/>
  17. <property name="username" value="${username}"/>
  18. <property name="password" value="${password}"/>
  19. </bean>
  20. <!-- mybatis和spring完美整合,不需要mybatis的配置映射文件 -->
  21. <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
  22. <property name="dataSource" ref="dataSource"/>
  23. <!-- 扫描model包 -->
  24. <property name="typeAliasesPackage" value="com.xjt.model"/>
  25. <!-- 扫描sql配置文件:mapper需要的xml文件-->
  26. <property name="mapperLocations" value="classpath:mapper/*.xml"/>
  27. </bean>
  28. <!-- Mapper动态代理开发,扫描dao接口包-->
  29. <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
  30. <!-- 注入sqlSessionFactory -->
  31. <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
  32. <!-- 给出需要扫描Dao接口包 -->
  33. <property name="basePackage" value="com.xjt.dao"/>
  34. </bean>
  35. <!-- 事务管理 -->
  36. <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
  37. <!--数据库连接池-->
  38. <property name="dataSource" ref="dataSource"/>
  39. </bean>
  40. </beans>

spring-mvc.xml

  1. <!-- 扫描注解,这样com.xjt包下的文件都能被扫描 -->
  2. <context:component-scan base-package="me.ling"/>
  3. <!-- 开启SpringMVC注解模式 -->
  4. <mvc:annotation-driven/>
  5. <!-- 静态资源默认servlet配置 -->
  6. <mvc:default-servlet-handler/>
  7. <!-- 配置返回视图的路径,以及识别后缀是jsp文件 -->
  8. <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  9. <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
  10. <property name="prefix" value="/WEB-INF/jsp/"/>
  11. <property name="suffix" value=".jsp"/>
  12. </bean>

web.xml

  1. <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
  2. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
  4. version="3.1">
  5. <display-name>mvcDemo</display-name>
  6. <!--项目的欢迎页,项目运行起来后访问的页面-->
  7. <welcome-file-list>
  8. <welcome-file>index.jsp</welcome-file>
  9. </welcome-file-list>
  10. <!-- 注册ServletContext监听器,创建容器对象,并且将ApplicationContext对象放到Application域中 -->
  11. <listener>
  12. <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  13. </listener>
  14. <!-- 指定spring核心配置文件 -->
  15. <context-param>
  16. <param-name>contextConfigLocation</param-name>
  17. <param-value>classpath:applicationContext.xml</param-value>
  18. </context-param>
  19. <!-- 解决乱码的过滤器 -->
  20. <filter>
  21. <filter-name>CharacterEncodingFilter</filter-name>
  22. <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
  23. <init-param>
  24. <param-name>encoding</param-name>
  25. <param-value>utf-8</param-value>
  26. </init-param>
  27. <init-param>
  28. <param-name>forceEncoding</param-name>
  29. <param-value>true</param-value>
  30. </init-param>
  31. </filter>
  32. <filter-mapping>
  33. <filter-name>CharacterEncodingFilter</filter-name>
  34. <url-pattern>/*</url-pattern>
  35. </filter-mapping>
  36. <!-- 配置前端控制器 -->
  37. <servlet>
  38. <servlet-name>springmvc</servlet-name>
  39. <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  40. <!-- 指定配置文件位置和名称 如果不设置,默认找/WEB-INF/<servlet-name>-servlet.xml -->
  41. <init-param>
  42. <param-name>contextConfigLocation</param-name>
  43. <param-value>classpath:spring-mvc.xml</param-value>
  44. </init-param>
  45. <load-on-startup>1</load-on-startup>
  46. <async-supported>true</async-supported>
  47. </servlet>
  48. <servlet-mapping>
  49. <servlet-name>springmvc</servlet-name>
  50. <url-pattern>/</url-pattern>
  51. </servlet-mapping>
  52. </web-app>

运行项目

配置tomcat

Spring5 传统项目SSM搭建 - 图4
编辑好项目的启动信息,包括项目名,jdk版本,tomcat以及端口

Spring5 传统项目SSM搭建 - 图5
选择Deployment,添加Atifact,选择第二项,否则Tomcat运行会报错
Spring5 传统项目SSM搭建 - 图6
image.png
保存后,启动项目,成功后在浏览器输入http://localhost:8080,返回结果如下:
项目成功启动:
image.png
目前存在乱码问题-解决:
参考:https://blog.csdn.net/weixin_42440768/article/details/98196400
Tomcat 目录下 config 的文件 logging.properties 的日志打印编码配置

  1. java.util.logging.ConsoleHandler.encoding = UTF-8

image.png

  1. java.util.logging.ConsoleHandler.encoding = GBK

image.png
乱码问题解决:
image.png