当前位置:网站首页>SSM 程序集

SSM 程序集

2022-07-06 02:01:00 hjhcos

简介

SSM 程序集是 Spring + SpringMVC + MyBatis 框架的整合,将系统划分为视图层、控制层、服务层、数据层。

Spring MVC
Spring
MyBatis
controller
domain
service
mapper

controller 控制器会去使用 service 服务;service 服务会去使用 mapper 数据映射并且将数据转化为 domain 数据对象;mapper 数据映射会去使用 domain 定义数据类型。

entity:数据对象,可以减少数据处理过程。

model:在 entity 基础上进行改进,使数据更加人性化。

domain:在 model 基础上对数据源进行扩展整合,可以丰富数据多样化。

控制器注册

通过 @Controller 和 @RestController 注解可以将控制器自动注册到项目中,这样再通过 @RequestMapping 注解就可以将请求映射,一般就可以访问到页面或数据了。

顺便说一下 @RestController = @Controller + @ResponseBody,其源码基本一样。

控制器被扫描

当类上面使用了 @Controller 来进行控制器注册且能够被 Spring 应用扫描到分两种情况:

  1. 外部依赖进行引用到项目里面

    你大概可以理解为当控制器不在当前工程里面,而是在工程的依赖包里面,例如 SpringSecurity 默认的登录页面,就是通过外部模块来进行引用的。

  2. 与 Spring 应用启动类同级自动扫描

spring-boot-starter-web

文档:https://www.yiibai.com/spring-boot/spring-boot-starter-web.html

spring-boot-starter-web 集成包包括了 web、webmvc 和 tomcat 。

因此 tomcat 服务器和 Spring MVC 框架是会自动配置,极大地减少了开发量。

如果你希望自行配置服务器,也可以将 spring-boot-starter-tomcat 排除项目从而不使用 tomcat 服务器。

mybatis-spring-boot-starter

文档:http://www.mybatis.cn/archives/861.html

mybatis-spring-boot-starter 集成包是对 MyBatis + MyBatis-Spring + SpringBoot 的集成封装,因此依赖性比较强,但是极大地减少了开发量,你可以不用去配置 SqlSessionFactory 和事务处理。

功能

  • 自动发现存在的数据源

  • 利用 SqlSessionFactoryBean 创建并注册 SqlSessionFactory

  • 创建并注册 SqlSessionTemplate

  • 自动扫描 Mapper,并注册到 Spring 上下文环境方便程序的注入使用

    默认情况会查找以 @Mapper 注解标记的映射器,除此之外其实可以通过 @MapperScan 注解来扫描包。

MyBatis

MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。

SqlSession

文档:https://mybatis.net.cn/java-api.html#sqlSessions

SqlSessions 是由 SqlSessionFactory 实例创建的。SqlSessionFactory 对象包含创建 SqlSession 实例的各种方法。而 SqlSessionFactory 本身是由 SqlSessionFactoryBuilder 创建的,它可以从 XML、注解或 Java 配置代码来创建 SqlSessionFactory。

XML 映射器

文档:https://mybatis.net.cn/sqlmap-xml.html

元素标签

标签描述
cache命名空间的缓存配置
cache-ref引用其它命名空间的缓存配置
resultMap描述如何从数据库结果集中加载对象
sqlsql 语句,可被其它语句引用的可重用语句块
insert映射插入语句
update映射更新语句
delete映射删除语句
select映射查询语句

元素属性

属性默认值场景描述
idstring——[selectupdate
parameterTypeobjectunset[selectupdate
resultTypeobject——[selectupdate
resultMapobject——[selectupdate
flushCachebooleanfalse[selectupdate
useCachebooleantrueselect该语句被调用会导致会导致其结果被二级缓存缓存起来。
timeoutintunset[selectupdate
fetchSizeintunset[selectupdate
resultOrderedbooleanfalse[select]如果为true,将会假设包含了嵌套结果集或是分组,当返回一个主结果行时,就不会产生对前面结果集的引用。这就使得在获取嵌套结果集的时候不至于内存不够用。
resultSets[object…]——[select]这个设置仅适用于多结果集的情况。它将列出语句执行后返回的结果集并赋予每个结果集一个名称,多个名称之间以逗号分隔。
useGeneratedKeysbooleanfalse[insertupdate]
keyPropertystringunset[insertupdate]
keyColumnstring——[insertupdate]

\

原网站

版权声明
本文为[hjhcos]所创,转载请带上原文链接,感谢
https://blog.csdn.net/hjh_cos/article/details/125581107