SSM框架
SSM框架(Spring+SpringMVC+Mybatis)
这是在看完网上ssm框架视频,最后总结的
1.SSM整合思路
- Spring 和 SpringMVC 整合
- 容器对象管理问题
- SpringMVC容器对象,由DispathcherServlet管理
- Spring容器对象,一定要在DispathcherServlet之前创建,那么就用ContextLoaderListener管理(监听器)
- 解决组件扫描的冲突问题
- SpringMVC 只扫描Controller层
- Spring扫描排除Controller层
- 容器对象管理问题
- Spring 和 Mybatis 整合
- 关于数据源,事务管理的代码冲突问题
- 统一交给Spring管理
- Spring管理Mybatis核心对象
- SqlSessionFactory
- Mapper代理对象
- 关于数据源,事务管理的代码冲突问题
因为Spring是一个大的容器(管家)可以管理所有对象
三大组件的执行顺序 Listener > Filter > Servlet
2.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
- 注册CharacterEncodingFilter,解决乱码问题
- 注册HiddenHttpMethodFilter,支持PUT和DELETE提交(REST风格)
- 注册DispatcherServlet(前端控制器)
- 注册一个上下文参数(contextConfigLoaction),设置Spring.xml配置文件的路径
- 注册ContextLoaderListener,管理spring容器对象
- springMVC.xml
- 开启组件扫描(只扫描controller层)
- 装配视图解析器
- 装配制图控制器(view-controller)
- 装配defaul-servlet-handler,解决静态资源加载问题
- 装配annotation-driven,解决后续问题
- 解决view-controller 导致别的controller失效
- 解决defaul-servlet-handle 的问题
- 解决jackson装配消息转换器问题
- (等23+种)
- spring.xml
- 开启组件扫描(排除controller层)
- web.xml
-
-
Spring + Mybatis
-
导入jar
- spring的jar包
<!--spring-jdbc spring-orm有jdbc所以可以省略这个--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>5.3.1</version> </dependency> <!--spring-orm--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-orm</artifactId> <version>5.3.1</version> </dependency> <!--spring-aspects--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aspects</artifactId> <version>5.3.1</version> </dependency>
- mybatis的jar包
<dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.10</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.37</version> </dependency> <!--mybatis核心包--> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.7</version> </dependency> <!--分页插件--> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>5.1.8</version> </dependency>
- spring和mybatis整合的jar包
<dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>2.0.6</version> </dependency>
-
配置文件
- spring.xml
- 组件扫描(排除controller层)
- 加载外部属性文件
- 装配数据源( DruidDataSource )
- 装配事务管理器( DataSourceTransactionManager )
- 开启声明式事务管理注解支持
- 装配SqlSessionFactoryBean,管理SqlSessionFactory
- 装配MapperScannerConfigurer,管理Mapper代理对象
- mybatis-config.xml(核心配置文件)
- 设置别名
- 开启驼峰命名映射
- 设置PageHelper分页插件
- ...
- xxxMaper.xml(映射文件)
- SQL语句
- spring.xml
-
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性