持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第13天,点击查看活动详情
SSM整合
SSM整合思路
-
Spring + SpringMVC
-
容器对象管理问题
- SpringMVC容器对象由DispatcherServlet管理。
- Spring容器对象,由ContextLoaderListener【监听器】管理。
-
解决组件扫描冲突问题
- SpringMVC只扫描Controller层
- Spring扫描排除Controller层
-
-
Spring + Mybatis
-
关于数据源、事务管理的代码冲突问题。
- 统一交给Spring管理【声明式事务管理】
-
Spring管理Mybatis核心对象
- SqlSessionFacctory
- Mapper代理对象
-
SSM整合步骤
-
Spring + SpringMVC
-
导入jar包
<!--spring-webmvc--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>5.3.1</version> </dependency> <!-- 导入thymeleaf与spring5的整合包 --> <dependency> <groupId>org.thymeleaf</groupId> <artifactId>thymeleaf-spring5</artifactId> <version>3.0.12.RELEASE</version> </dependency> <!--servlet-api--> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>4.0.1</version> <scope>provided</scope> </dependency> -
编写配置文件
-
web.xml
- 注册CharacterEmcodingFilter【解决请求乱码】
- 注册HiddenHttpMethodFilter【支持PUT&DELETE提交方式,REST风格】
- 注册DispatcherServlet【管理SpringMVC容器对象】
- 注册contextConfigLocation【上下文参数,设置spring.xml配置文件路径】
- 注册ContextLoaderListener【管理spring容器对象】
-
springmvc.xml
- 开启组件扫描,只扫描Controller层【扫描自己写的注解,可以让程序识别】
- 装配视图解析器ThymeleafViewResolver【设置视图前缀&后缀等】
- 装配视图控制器view-controller【为指定URL映射视图】
- 装配default-servlet-handler【解决重定向的静态资源加载】
- 装配annotation-driven【解决view-controller、default-servlet-handler、jackson装配消息转换器等23+问题】
-
spring.xml
- 开启组件扫描,排除Controller层。
-
-
-
Spring + Mybatis
-
导入jar包
-
spring的jar包
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-aspects</artifactId> <version>5.3.1</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-orm</artifactId> <version>5.3.1</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.3.1</version> </dependency> -
mybatis的jar包
<!--导入druid的jar包--> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.10</version> </dependency> <!--导入mysql的jar包,注意版本--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.28</version> </dependency> <!--导入MyBatis的jar包--> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.6</version> </dependency> <!-- pagehelper --> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>5.2.0</version> </dependency> -
spring与mybatis整合jar包
<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis-spring --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>2.0.6</version> </dependency>
-
-
配置文件
-
spring.xml
- 开启组件扫描,排除Controller层。
- 加载外部属性文件
- 装配数据源
- 装配事务管理器
- 开启声明式事务管理注解支持
- 装配SqlSessionFactoryBean【管理SqlSessionFactory】
- 装配MapperScannerConfigurer【管理Mapper代理对象】
-
mybatis-config.xml【核心配置文件】
- 设置别名
- 开启驼峰式命名映射
- 设置分页插件
-
XXXMapping.xml【映射文件】
-
-