SpringBoot配置类注解【@PropertySource和@ConfigurationProperties】

@PropertySource

@PropertySource将指定配置文件加载到spring容器中,但是不包括配置文件中属性的注入。
案例代码:
config.properties

spring.fut.username=fut
spring.fut.password=123456
spring.fut.age=18

FutConfigure.java

@ToString
@Data
@Configuration
@PropertySource(value = { "classpath:config.properties"}, ignoreResourceNotFound = true)
public class FutConfigure {

    @Value("${spring.fut.username}")
    private String username;
    @Value("${spring.fut.password}")
    private String password;
    @Value("${spring.fut.age}")
    private int age;

}

以上类有3个含义:

  1. FutConfigure的作用就是接收外部properties文件里属性的值。
  2. @PropertySource表明了它要将classpath路径下的config.properties加载到spring容器中。
  3. @Value表明它要将spring容器中对应key的值注入到FutConfigure类属性中。

有木有觉得使用起来很方便?两个注解就成功的将外部的properties文件加载到了内存中。并且被spring容器管理起来,这样任何地方想要使用它,都可以直接从spring容器中去获取。

下面思考下,如果FutConfigure属性超级多,那是不是我要不停地加上@Value呢?这就要使用到上次讲解的注解@ConfigurationProperties。

@ConfigurationProperties(再回顾下,加深印象)

@ConfigurationProperties的作用就是将配置文件里的属性值映射到被注解的类里面。显然,这个注解是类级别的。
案例代码:
FutConfigure.java

@ToString
@Data
@Configuration
@PropertySource(value = { "classpath:config.properties"}, ignoreResourceNotFound = true)
@ConfigurationProperties(prefix = "spring.fut")
public class FutConfigure {

//    @Value("${spring.fut.username}")
    private String username;
//    @Value("${spring.fut.password}")
    private String password;
//    @Value("${spring.fut.age}")
    private int age;

}

以上类有3个含义:

  1. FutConfigure的作用就是接收外部properties文件里属性的值。
  2. @PropertySource表明了它要将classpath路径下的config.properties加载到spring容器中。
  3. @ConfigurationProperties表明了它要将config.properties文件里以spring.fut开头的属性值注入到FutConfigure对应的属性当中。

@ConfigurationProperties和@Value,一个适用类级别的注入,一个适用属性和方法级别的注入。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值