SpringBoot与Mybatis整合的设置
Mybatis和Spring Boot的整合有两种方式:
第一种:使用mybatis官方提供的Spring Boot整合包实现,地址:https://github.com/mybatis/spring-boot-starter
第二种:使用mybatis-spring整合的方式,也就是我们传统的方式
这里推荐使用第二种,因为这样可以很方便的控制Mybatis的各种配置。
首先,创建一个Mybatis的配置类:

代码:
import javax.sql.DataSource; import org.mybatis.spring.SqlSessionFactoryBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.core.io.Resource; import org.springframework.core.io.support.PathMatchingResourcePatternResolver; import org.springframework.core.io.support.ResourcePatternResolver; @Configuration public class MyBatisConfig { @Bean @ConditionalOnMissingBean //当容器里没有指定的Bean的情况下创建该对象 public SqlSessionFactoryBean sqlSessionFactory(DataSource dataSource) { SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean(); // 设置数据源 sqlSessionFactoryBean.setDataSource(dataSource); // 设置mybatis的主配置文件 ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver(); Resource mybatisConfigXml = resolver.getResource("classpath:mybatis/mybatis-config.xml"); sqlSessionFactoryBean.setConfigLocation(mybatisConfigXml); // 设置别名包 sqlSessionFactoryBean.setTypeAliasesPackage("com.taotao.cart.pojo"); return sqlSessionFactoryBean; } }
然后,创建Mapper接口的扫描类MapperScannerConfig:

代码:
import org.mybatis.spring.mapper.MapperScannerConfigurer; import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration @AutoConfigureAfter(MyBatisConfig.class) //保证在MyBatisConfig实例化之后再实例化该类 public class MapperScannerConfig { // mapper接口的扫描器 @Bean public MapperScannerConfigurer mapperScannerConfigurer() { MapperScannerConfigurer mapperScannerConfigurer = new MapperScannerConfigurer(); mapperScannerConfigurer.setBasePackage("com.taotao.cart.mapper"); return mapperScannerConfigurer; } }

浙公网安备 33010602011771号