通过引入mybatis-spring-boot-starter依靠,可以简朴设置mybatis上手行使。下面简朴说明mybatis-starter的源码以及怎样设置mybatis。 先看mybatis-spring-boot-starter中mybatis-spring-boot-autoconfigure的spring.factories文件。
- # Auto Configure
- org.springframework.boot.autoconfigure.EnableAutoConfiguration=org.mybatis.spring.boot.autoconfigure.MybatisAutoConfiguration
可以看到自动注入类是MybatisAutoConfiguration,我们从这个类入手说明可以知道,必需先建设好了数据源后,才会加载MyBatis的sqlSessionFactory。
@EnableConfigurationProperties({MybatisProperties.class})注解指定了设置文件中 prefix = "mybatis" 那部门属性有用,这部门属性值将注入到已建设的SqlSessionFactoryBean中,最后天生SqlSessionFactory工具。
- @Configuration
- //当SqlSessionFactory,SqlSessionFactoryBean存在的环境下加载当前Bean
- @ConditionalOnClass({SqlSessionFactory.class, SqlSessionFactoryBean.class})
- //当指定命据源在容器中只有一个可能有多个可是只指定首选数据源
- @ConditionalOnSingleCandidate(DataSource.class)
- @EnableConfigurationProperties({MybatisProperties.class})
- //当数据源注入到Spring容器后才开始加载当前Bean
- @AutoConfigureAfter({DataSourceAutoConfiguration.class})
- public class MybatisAutoConfiguration implements InitializingBean {
- private final MybatisProperties properties;
- @Bean
- @ConditionalOnMissingBean
- public SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception {
- SqlSessionFactoryBean factory = new SqlSessionFactoryBean();
- factory.setDataSource(dataSource);
- factory.setVfs(SpringBootVFS.class);
- //配置mybatis设置文件地址路径
- if (StringUtils.hasText(this.properties.getConfigLocation())) {
- factory.setConfigLocation(this.resourceLoader.getResource
- (this.properties.getConfigLocation())); }
- }
- //配置其他MyBatisProperties工具中有的属性略....
- return factory.getObject();
- }
- }
(编辑:湖南网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|