@ConfigurationProperties注解与@Value注解区别

使用@ConfigurationProperties注入属性

Spring Boot提供的@ConfigurationProperties注解用来快速、方便地将配置文件中的自定义属性值批量注入到某个Bean对象的多个对应属性中。

  1.  在SpringBoot中,除了使用@ConfigurationProperties注入属性的值,还可以使用Spring的底层注解@Value注入属性的值。

    @Component

    public class Person {

        @Value("${person.last-name}")

        private String lastName;

        private Integer age;

        private Boolean boss;

        private Date birth;

    }

    @ConfigurationProperties注解与@Value注解区别

  2. 这个两个注解都能注入属性的值,那么这两个注解的区别是什么?

    @ConfigurationProperties能够批量注入配置文件的属性。

    @Value只能一个个指定。

    @ConfigurationProperties注解与@Value注解区别

  3. @ConfigurationProperties支持松散绑定。

    @ConfigurationProperties(prefix = "person"),只需要指定一个前缀,就能绑定有这个前缀的所有属性值。

    @ConfigurationProperties注解与@Value注解区别

  4. @Value支持SpringEl的语法。@ConfigurationProperties不支持SpringEl的语法。

    @ConfigurationProperties注解与@Value注解区别

  5. 5

    @ConfigurationProperties还支持JSR303进行配置文件值及校验。

    @ConfigurationProperties注解与@Value注解区别

  6. 6

    @Value不支持复杂类型封装注解。

    如果说,我们只是在某个业务逻辑中需要获取一下配置文件中的某项值,使用@Value,如果我们转么编写了一个javabean和配置文件进行映射,就直接使用ConfigurationProperties;

案例演示:将配置文件中uploadPath的值松散绑定到 Props类对象属性上

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值