SpringBoot___项目开发整合及设置(一)

版权声明:如果有不同看法,或者是文中写错的地方,麻烦各位花费几秒的时间,指出文中的错误。灰常感谢!!! https://blog.csdn.net/pseudonym_/article/details/80679421

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注解,则使用在类级别的注解会重载方法级别的注解。

阅读更多
换一批

没有更多推荐了,返回首页