SpringBoot+Mybatis两种配置方式
-
application.yml内配置
@MapperScan("com.example.configclient.mapper") //扫描的mapper
方式一当前配置mapper.xml文件当放入resources下
mybatis:
typeAliasesPackage: com.example.configclient.mapper
mapperLocations: classpath:mapper/*.xml
方式二当前配置mapper.xml文件当放入java下mapper内
mybatis:
typeAliasesPackage: com.example.configclient.mapper
mapperLocations: classpath: com/example/configclient/mapper/*.xml
-
代码SessionFactory配置
@Configuration @EnableTransactionManagement public class MysqlSessionFactoryConfig implements TransactionManagementConfigurer { @Autowired private DataSource dataSource; private String mapperLocations = "classpath*:com/example/configclient/mapper/*Mapper.xml"; //xml扫描路径 @Bean public SqlSessionFactory mysqlSqlSessionFactory() throws Exception { final SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean(); sqlSessionFactoryBean.setDataSource(dataSource); sqlSessionFactoryBean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources(mapperLocations)); return sqlSessionFactoryBean.getObject(); } @Bean public SqlSessionTemplate mysqlSqlSessionTemplate(@Qualifier("mysqlSqlSessionFactory") SqlSessionFactory sqlSessionFactory) { return new SqlSessionTemplate(sqlSessionFactory); } @Override public PlatformTransactionManager annotationDrivenTransactionManager() { return new DataSourceTransactionManager(dataSource); } }
这种配置需要在pom文件内加上扫描范围
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>