MyBatis Spring SqlSessionFactoryBean 配置详解编程语言
在基本的 MyBatis 中,session 工厂可以使用 SqlSessionFactoryBuilder 来创建。而在 MyBatis-Spring 中,则使用 SqlSessionFactoryBean 来替代。
Setup要创建工厂 bean,放置下面的代码在 Spring 的 XML 配置文件中:
要注意 SqlSessionFactoryBean 实现了 Spring 的 FactoryBean 接口(请参考 Spring 文 档的 3.8 章节)这就说明了由 Spring 最终创建的 bean 不是 SqlSessionFactoryBean 本身, 。 而是工厂类的 getObject()返回的方法的结果。这种情况下,Spring 将会在应用启动时为你 创建 SqlSessionFactory 对象,然后将它以 SqlSessionFactory 为名来存储。在 Java 中, 相同的代码是:
SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean(); SqlSessionFactory sessionFactory = factoryBean.getObject();
在一般的 MyBatis-Spring 用法中, 你不需要直接使用 SqlSessionFactoryBean 或和其对 应的 SqlSessionFactory。相反,session 工厂将会被注入到 MapperFactoryBean 或其它扩 展了 SqlSessionDaoSupport 的 DAO(Data Access Object,数据访问对象,译者注)中。
属性
SqlSessionFactory 有一个单独的必须属性,就是 JDBC 的 dataSource。这可以是任意 的 DataSource,其配置应该和其它 Spring 数据库连接是一样的。
一个通用的属性是 configLocation,它是用来指定 MyBatis 的 XML 配置文件路径的。 如果基本的 MyBatis 配置需要改变, 那么这就是一个需要它的地方。 通常这会是 settings 或 typeAliases 的部分。
要注意这个配置文件不需要是一个完整的 MyBatis 配置。确切地说,任意环境,数据源 和 MyBatis 的事务管理器都会被忽略。SqlSessionFactoryBean 会创建它自己的,使用这些 值定制 MyBatis 的 Environment 时是需要的。
如果 MyBatis 映射器 XML 文件在和映射器类相同的路径下不存在,那么另外一个需要 配置文件的原因就是它了。使用这个配置,有两种选择。第一是手动在 MyBatis 的 XML 配 置文件中使用 mappers 部分来指定类路径。第二是使用工厂 bean 的 mapperLocations 属 性。
mapperLocations 属性使用一个资源位置的 list。 这个属性可以用来指定 MyBatis 的 XML 映射器文件的位置。 它的值可以包含 Ant 样式来加载一个目录中所有文件, 或者从基路径下 递归搜索所有路径。比如:
property name="dataSource" ref="dataSource" / property name="mapperLocations" value="classpath*:sample/config/mappers/**/*.xml" / /bean
这会从类路径下加载在 sample.config.mappers 包和它的子包中所有的 MyBatis 映射器 XML 文件。
在容器环境管理事务中,一个可能需要的属性是 transactionFactoryClass。请参考 第四章(4.2 节)中来查看有关部分。
NOTE Since 1.3.0, configuration property has been added. It can be specified a Configuration instance directly without MyBatis XML configuration file. For example:
相关文章
- Spring学习笔记(三十五)——小技巧:配置全局跨域、全局⽇期格式化、读取本地json
- spring事务隔离级别、传播机制以及简单配置_mysql查看事务隔离级别
- Spring batch教程 之 spring batch简介
- spring配置多数据源——mybatis
- MyBatis框架:第六章:mybatis的核心配置
- 解释spring框架中bean的生命周期_Spring bean的生命周期
- 【工具类】提供手动获取被spring管理的bean对象
- 玩转Kafka—Spring整合Kafka
- java 配置事务回滚_Spring@Transactional事务回滚
- MySQL8.0理解数据库配置问题(spring)
- Redis Spring注解
- 打造REST风格的Spring Security配置
- Spring监听器-spring源码详解(五)
- Spring之XML 配置AOP 事务管理
- Spring Boot的核心注解和配置(一)
- Spring Cloud Gateway环境搭建和配置(二)
- Spring Cloud Gateway监控配置示例
- Spring Cloud Security配置OAuth2客户端来访问受保护的API示例
- Spring Security 的 Filter 链和 Filter 顺序(一)
- Spring Cloud Bus集成Spring Cloud Config Server实现全局配置的自动刷新(一)
- Spring配置框架之javaconfig使用方式详解编程语言
- spring整合mybatis(hibernate)配置详解编程语言
- Spring Boot(十三):spring boot小技巧详解编程语言
- spring boot配置mybatis和事务管理详解编程语言
- java spring boot 部署redis详解编程语言