| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- package com.tsi.sig.server.config;
- import org.apache.ibatis.session.SqlSessionException;
- import org.apache.ibatis.session.SqlSessionFactory;
- import org.mybatis.spring.SqlSessionFactoryBean;
- import org.mybatis.spring.SqlSessionTemplate;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.beans.factory.annotation.Qualifier;
- import org.springframework.beans.factory.annotation.Value;
- import org.springframework.boot.context.properties.ConfigurationProperties;
- import org.springframework.boot.jdbc.DataSourceBuilder;
- import org.springframework.context.ApplicationContext;
- import org.springframework.context.annotation.Bean;
- import org.springframework.context.annotation.Configuration;
- import org.springframework.context.annotation.Primary;
- import org.springframework.jdbc.datasource.DataSourceTransactionManager;
- import org.springframework.transaction.annotation.EnableTransactionManagement;
- import javax.annotation.PostConstruct;
- import javax.sql.DataSource;
- @Configuration
- @EnableTransactionManagement
- public class MybatisConfig {
- @Value("${spring.datasource.mybatis.mapper-locations:classpath:mybatis/mapper/**/*.xml}")
- String mapperLocations;
- @PostConstruct
- private void init() {}
- @Primary
- @Bean(name="dataSource")
- @ConfigurationProperties(prefix="spring.datasource.mybatis")
- public DataSource dataSource() {
- return DataSourceBuilder.create().build();
- }
- @Primary
- @Bean(name="sqlSessionFactory")
- public SqlSessionFactory sqlSessionFactoryBean(@Autowired @Qualifier("dataSource") DataSource dataSource, ApplicationContext applicationContext)
- throws Exception, SqlSessionException {
- SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean();
- factoryBean.setDataSource(dataSource);
- factoryBean.setConfigLocation(applicationContext.getResource("classpath:mybatis/mybatis-config.xml"));
- factoryBean.setMapperLocations(applicationContext.getResources(this.mapperLocations));
- return factoryBean.getObject();
- }
- @Primary
- @Bean(name="sqlSession")
- public SqlSessionTemplate sqlSession(@Autowired @Qualifier("sqlSessionFactory") SqlSessionFactory sqlSessionFactory) {
- return new SqlSessionTemplate(sqlSessionFactory);
- }
- @Primary
- @Bean(name="transactionManager")
- public DataSourceTransactionManager transactionManager(@Autowired @Qualifier("dataSource") DataSource dataSource) {
- return new DataSourceTransactionManager(dataSource);
- }
- }
|