Springboot___properties以及数据库配置

1. 简介
 在Java的漫长发展过程当中,其项目的配置方式也发生了很多次变化。
  第一阶段:都是通过xml来配置bean。缺点:随着项目不断扩大,需要将xml分别放到不同的配置文件中。

  第二阶段:因为JDK1.5支持了注解配置,于是配置文件的方式也发生了变化。对与基本配置用xml,而对于业务开发则使用注解来配置。

 第三阶段:使用Java配置。配置Java类进行注解来配置属性。

2. 配置注解
 Spring的Java配置方式是通过@Configuration@Bean这两个注解来实现的。
 其中@Configuration作用于类上,相当于一个xml配置文件。
 而@Bean作用于方法上,相当于一个<bean>标签。

3. 用注解代替配置文件
 在springboot中会使用@PropertySource来指定读取的配置文件,并且通过@Value注解获取值。
<1>如何配置多个配置文件?
 配置多个配置文件的示例如下:

//在类上配置注解如下
@PropertySource(value="classpath:jdbc.properties","test.properties")

<2>如果配置文件不存在,如何解决?
 可以通过配置忽略文件不存在的情况,防止程序抛出ClassNotFoundException。

//在类上配置注解如下
@PropertySource(value={"classpath:jdbc.properties"},
                ignoreResourceNotFound=true)

4. 数据库配置
 之前的配置方式如下:

<!-- 定义数据源 -->
<bean id="dataSource" class="com.jolbox.bonecp.BoneCPDataSource"
    destroy-method="close">
    <!-- 数据库驱动 -->
    <property name="driverClass" value="${jdbc.driverClassName}" />
    <!-- 相应驱动的jdbcUrl -->
    <property name="jdbcUrl" value="${jdbc.url}" />
    <!-- 数据库的用户名 -->
    <property name="username" value="${jdbc.username}" />
    <!-- 数据库的密码 -->
    <property name="password" value="${jdbc.password}" />
    <!-- 检查数据库连接池中空闲连接的间隔时间,单位是分,默认值:240-->
    <!--如果要取消则设置为0 -->
    <property name="idleConnectionTestPeriod" value="60" />
    <!-- 连接池中未使用的链接最大存活时间,单位是分,默认值:60 -->
    <!--如果要永远存活设置为0 -->
    <property name="idleMaxAge" value="30" />
    <!-- 每个分区最大的连接数 -->
    <!-- 
        判断依据:请求并发数
     -->
    <property name="maxConnectionsPerPartition" value="100" />
    <!-- 每个分区最小的连接数 -->
    <property name="minConnectionsPerPartition" value="5" />
</bean>

 如果要改成java配置放下则如:

@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 boneCPDataSource = new BoneCPDataSource();
        // 数据库驱动
        boneCPDataSource.setDriverClass(jdbcDriverClassName);
        // 相应驱动的jdbcUrl
        boneCPDataSource.setJdbcUrl(jdbcUrl);
        // 数据库的用户名
        boneCPDataSource.setUsername(jdbcUsername);
        // 数据库的密码
        boneCPDataSource.setPassword(jdbcUsername);
        // 检查数据库连接池中空闲连接的间隔时间,单位是分,默认值:240
        //如果要取消则设置为0
        boneCPDataSource.setIdleConnectionTestPeriodInMinutes(60);
        // 连接池中未使用的链接最大存活时间,单位是分,默认值:60
        //如果要永远存活设置为0
        boneCPDataSource.setIdleMaxAgeInMinutes(30);
        // 每个分区最大的连接数
        boneCPDataSource.setMaxConnectionsPerPartition(100);
        // 每个分区最小的连接数    
        boneCPDataSource.setMinConnectionsPerPartition(5);
        return boneCPDataSource;
}

猜你喜欢

转载自blog.csdn.net/pseudonym_/article/details/80398671