初始化项目
快速创建springboot项目,添加 MySQL Web MyBatis Lombok 依赖,生成项目。解压后导入 idea。
maven依赖
添加druid 连接池依赖
<!-- druid 连接池 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>${druid.version}</version>
</dependency>
配置数据源
@Configuration
@MapperScan(basePackages = Wyc1856DataSourceConfig.MAPPER_PACKAGE, sqlSessionFactoryRef = "wyc1856SqlSessionFactory")
public class Wyc1856DataSourceConfig {
/**
* 该数据源下对应的mapper.xml文件地址
*/
static final String MAPPER_XML_LOCATION = "classpath:mapper/wyc1856/*.xml";
/**
* 该数据源下对应的mapper类包路径
*/
static final String MAPPER_PACKAGE = "club.wyc1856.mybatisspringboot.mapper.wyc1856";
/**
* 数据源
*/
@Bean
@ConfigurationProperties(prefix = "wyc1856.datasource")
public DataSource wyc1856DataSource(){
return new DruidDataSource();
}
/**
* 事务管理器
*/
@Bean
public DataSourceTransactionManager wyc1856TransactionManager(){
return new DataSourceTransactionManager(wyc1856DataSource());
}
/**
* sessionFactory
*/
@Bean
public SqlSessionFactory wyc1856SqlSessionFactory(@Qualifier("wyc1856DataSource") DataSource wyc1856DataSource) throws Exception{
SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
sqlSessionFactoryBean.setDataSource(wyc1856DataSource);
sqlSessionFactoryBean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources(MAPPER_XML_LOCATION));
return sqlSessionFactoryBean.getObject();
}
}
补充
- 相关注解说明
-
@Configuration:将类声明为一个spring所管理的bean,多用在配置类上;
-
@MapperScan:扫描mapper接口,多数据源情况下指定sessionFactory和sessionTemplate;
-
@ConfigurationProperties:使用prefix属性指定前缀,自动绑定属性值,生成相应的bean。具体使用方式参考这篇文章
-
@Qualifier:spring默认采用byType注入,当存在多了类型相同的bean时就会注入失败,使用此注解可实现byName方式注入;
- 具体示例代码可参考mybatis-spring-boot
(转载本站文章请注明作者和出处 wyc1856)