@ConfigurationProperties 和@PropertySource注解的使用

@ConfigurationProperties 是spring-boot中特有的注解。

使用场景如下:
假设application.properties 文件存在redis配置如下

redis config

redis.config.maxTotal=5000 
redis.config.maxIdle=10 
redis.config.maxWaitMillis=5000 
redis.config.testWhileIdle=true 
redis.config.numTestsPerEvictionRun=100 
redis.config.timeBetweenEvictionRunsMillis=6000 
redis.config.testOnBorrow=true 
redis.config.testOnReturn=true

redis.config.host=127.0.0.1 
redis.config.port=6379 
redis.config.name=localhost_redis 
redis.config.timeout=5000 
redis.config.weight=1 
redis.config.password=

在定义的Redis配置类中

@Configuration
@ConfigurationProperties(prefix = "redis.config")
@Data
public class RedisConfiguration {

private int maxTotal;
private int maxIdle;
private int maxWaitMillis;
private boolean testWhileIdle;
private int numTestsPerEvictionRun;
private int timeBetweenEvictionRunsMillis;
private boolean testOnBorrow;
private boolean testOnReturn;

private String host;
private String name;
private int port;
private int timeout;
private int weight;
private String password;

// @ConfigurationProperties(prefix = “redis.config”) 这个注解,可以使属性文件中的值和类中的属性对应起来。

注意:在spring boot中除了使用这个注解读取属性文件值外,还可以是用@Value注解。

@Value(“${spring.redis.weight}”)
private int weight;

另一个例子
application.yml

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/o2o?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull
    username: root
    password: root
    driverClassName: com.mysql.jdbc.Driver
    type: com.alibaba.druid.pool.DruidDataSource

在配置类中

@Component
@ConfigurationProperties(prefix = "spring.datasource")
@PropertySource("classpath:druid.properties")
public class DruidDataSourceSettings {
    private String driverClassName;
    private String url;
    private String username;
    private String password;


    @Value("${druid.initialSize}")
    private int initialSize;
    }

这样就取到了application.yml中的值。
而通过@PropertiesSource从druid.properties中得到initialSize;

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值