ssm基础
简介:
这是一个简单的ssm框架,一步步的带你搭建并且理解ssm框架,最后还有一个总结
这是一个maven项目,不会的请看maven基础知识
pom文件
spring相关
首先引入spring的核心jar包
1 | <dependency> |
接着引入springmvc需要的jar包
1 | <dependency> |
这是项目里边的jar包关系如下图
涉及的相关jar包
spring-core spring核心包,spring一切功能的基础
spring-beans spring容器包,容器相关功能就在这个包中
spring-context spring上下文,Application什么之类的
spring-jdbc spring对数据库连接的支持,图中没有,见下面介绍
spring-tx spring对事务回滚的支持,图中没有,见下面介绍
spring-web spring对web相关技术的支持
spring-aop spring对切面的支持
spring-jcl spring日志框架, 这是从spring5.0开始才有的一个jar包,内部日志实现是logback,日志门面是slf4j,之前spring框架日志的
实现是既有log4j又有commons-logging的,本身包含在spring-core包中
spring-expression Spring表达式语言,好吧,我承认我是第一次知道还有这玩意,不知道具体功能
相关jar包关系梳理(图上能够看见的就省略了)
spring-jdbc
和spring-tx
在spring-context-support
中spring-context-support
中已经包含的jar包不需要再maven中再次导入了
mybatis相关
mybatis的jar包
1 | <dependency> |
mybatis和spring连接的jar包
1 | <dependency> |
上面两个jar包版本对应关系的问题
直接去maven仓库中搜索
mybatis-spring-boot-starter
,选择任意一个版本,看其中对这两个jar包之间依赖的关系
例如mybatis-spring-boot-starter
2.1.1版本依赖mybatis
3.5.3版本和mybatis-spring
2.0.3版本
数据库相关
数据库连接驱动(jdbc是java database connection的缩写)
此处已mysql为例,同时需要注意不是越新越好,需要和mysql版本相对应
mysql8.0之后需要只需要与你使用的数据库版本对应就好
mysql8.0之前只需要两者前面的大版本号对应就可以了,实际上两者也是不对应的
mysql8.0之前和mysql8.0之后在配置配置文件时也有些许差别,请参照后面的配置文件
1 | <dependency> |
数据库连接池
这里说两点:
1.甄别一个误区,就是没有数据连接池,整个项目也是可以跑起来的
2.别找其他的数据连接池,面前最好用的就是druid,配置也是大同小异
1 | <dependency> |
其他的一些工具包
1 |
web.xml配置相关
web.xml中常用的三个配置
暂时不拓展,以后等我了解透彻了再说
- 监听器(listener)
- 过滤器(filter)
- 服务(servlet)
web.xml配置文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
<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_4_0.xsd"
version="4.0">
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:spring/applicationContext-*.xml</param-value>
</context-param>
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!--<filter>
<filter-name>LoginFilter</filter-name>
<filter-class>com.hwl.transaction.filter.LoginFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>LoginFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>-->
<servlet>
<servlet-name>DruidStatView</servlet-name>
<servlet-class>com.alibaba.druid.support.http.StatViewServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>DruidStatView</servlet-name>
<url-pattern>/druid/*</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>springMVC</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring/spring-mvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
<async-supported>true</async-supported>
</servlet>
<servlet-mapping>
<servlet-name>springMVC</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<filter>
<filter-name>HiddenHttpMethodFilter</filter-name>
<filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>HiddenHttpMethodFilter</filter-name>
<!-- 备注,这边的名称必须和配置'springmvc'的servlet名称一样 -->
<servlet-name>springMVC</servlet-name>
</filter-mapping>
<!-- 配置SESSION超时,单位是分钟 -->
<session-config>
<session-timeout>120</session-timeout>
</session-config>
</web-app>