1. 设置扫描包
SpringBoot我们可以通过@SpringBootApplication
来标记扫描其同位置的所有类,也可以通过在*Application
类中手动来指定扫描某些包,其设置如下:
@ComponentScan(basePackages="com.practice")
public class SpringBootApplication{
我们可以通过在springboot的启动类中添加扫描注解@ComponentScan
来手动指定要扫描的包。
2. 定义数据源
SpringBoot可以通过下列方式来定义数据, 例如:
@Value("${jdbc.url}")
private String jdbcUrl;
@Value("${jdbc.driverClassName}")
private String jdbcDriverClassName;
@Value("${jdbc.username}")
private String jdbcUsername;
@Value("${jdbc.password}")
private String jdbcPassword;
@Bean(destroyMethod="close")
public DataSource dataSource(){
BoneCPDataSource boneDataSource = new BoneCPDataSource();
//数据库驱动
boneCPDataSource.setDriverClass("jdbcDriverClassName");
//相应驱动的jdbcUrl
boneCPDataSource.setJdbcUrl(jdbcUrl);
//数据库的用户名
boneCPDataSource.setUserName(jdbcUsername);
//数据库密码
boneCPDataSource.setPassword(jdbcPassword);
//检查数据库连接池中空闲连接的间隔时间,单位是分,默认值:240,取消则设置为0
boneCPDataSource.setIdleConnectionTestPeriodInMinutes(60);
//连接池中未使用的链接最大存活时间,单位是分,默认值:60,如果要永远存活则设置为0
boneCPDataSource.setIdleMaxAgeInMinutes(30);
//每个分区最大的连接数
boneCPDataSource.setMaxConnectionPerPartition(100);
//每个分区最小的连接数
boneCPDataSource.setMinConnectionsPerPartition(5);
return boneCPDataSource;
}
3.与Mybtis整合
Mybtis和SpringBoot整合的方式有两种,一种是使用mybatis官方提供的整合包,也就是start-pom来实现,其地址为:https://github.com/mybatis/spring-boot-starter,但是这边不建议使用,因为比较我们手动来管理起来会方便习惯很多。
另外一种就是通过配置来实现自己手动管理,下面我们来介绍一下手动配置管理。
- 创建Mybatis的配置类:
public class MyBatisConfig{
@Bean
@ConditionalOnMissingBean//当容器中不存在该对象的时候创建
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");
sqlSessinFactoryBean.setConfigLocation(mybatisConfig.xml);
//设置别名包
sqlSessionFactoryBean.setTypeAliasesPackage("com.practice.XXX");
return sqlSessionFactoryBean;
}
}
- 然后创建Mapper接口扫描类:
@Configuration
@AutoConfigureAfter(MyBatisConfig.class)//保证在MyBatisConfi实例化之后再实例化该类
public class MapperScannerConfig{
//mapper接口的扫描类
@Bean
public MapperScannerConfigurer mapperScannerConfigurer(){
MapperScannerConfigurer mapperScannerConfigurer =
new MapperScannerConfigurer();
mapperScannerConfigurer.setBasePackage("com.practice.XXX");
return mapperScannerConfigurer;
}
}
4.设置事务管理
在SpringBoot中推荐使用@Transactional
注解来申明事务。
首先需要导入依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
当我们引入jdbc依赖后,SpringBoot会自动默认分别注入DataSourceTransactionManager或JpaTransactionManager,所以我们不需要任何额外配置就可以用@Transactional
注解进行事务的管理。
@Transactional
不仅可以注解在方法上,也可以注解在类上,当注解在类上的时候意味着此类的所有public方法都是开启事务的。如果类级别和方法级别同时使用了@Transactional
注解,则使用在类级别的注解会重载方法级别的注解。