Springboot___properties以及数据库配置

本文介绍了Spring框架配置方式的发展历程,从XML配置到Java配置的变化过程,包括注解的使用方法及如何利用注解进行数据库配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值