import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.SqlSessionTemplate;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.Resource;
import javax.sql.DataSource;
@Configuration
// 如果是多数据源,这里扫描不同的mapper包即可实现
@MapperScan(basePackages = "com.test.model.mapper", annotationClass = Mapper.class,
sqlSessionFactoryRef = "sqlSessionFactory1",sqlSessionTemplateRef = "sqlSessionTemplate1")
public class MyBatisConfig {
/**
* 限定数据源,如果是多数据源,这里使用Qualifier注入不同的数据源即可
**/
@Autowired
@Qualifier(value= "dataSource")
private DataSource dataSource;
@Bean(name = "sqlSessionFactory1")
public SqlSessionFactory sqlSessionFactory1(@Value("classpath:mybatis/mapper/*.xml") Resource[] mapperLocations) throws Exception {
SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
org.apache.ibatis.session.Configuration ibatisConfiguration = new org.apache.ibatis.session.Configuration();
ibatisConfiguration.setMapUnderscoreToCamelCase(true);
sqlSessionFactoryBean.setConfiguration(ibatisConfiguration);
sqlSessionFactoryBean.setTypeHandlersPackage("com.test.model.typeHandler");
sqlSessionFactoryBean.setMapperLocations(mapperLocations);
sqlSessionFactoryBean.setDataSource(dataSource);
sqlSessionFactoryBean.setTypeAliasesPackage("com.test.model.domain,com.test.model.query");
return sqlSessionFactoryBean.getObject();
}
@Bean(name = "sqlSessionTemplate1")
public SqlSessionTemplate sqlSessionTemplate1(SqlSessionFactory sqlSessionFactory1) {
return new SqlSessionTemplate(sqlSessionFactory1);
}
}
Mybatis 数据源配置(多数据源类似)
最新推荐文章于 2024-08-07 18:30:28 发布