其他分享
首页 > 其他分享> > @ConfigurationProperties使用及与@Value对比

@ConfigurationProperties使用及与@Value对比

作者:互联网

@ConfigurationProperties使用及与@Value对比
https://blog.csdn.net/y368769/article/details/107353709

两者区别

  1. @ConfigurationProperties:可以将配置文件中的属性值批量注入到类的各个属性;
    @Value:为类中的各个属性逐个赋值

  2. @ConfigurationProperties支持松散绑定;@Value不支持

     松散绑定:指的是配置文件中的命名规则
     比如说:
     config.test.oldOne=HelloWord:对应的类的属性是oldOne
     config.test.old-one=HelloWord:对应的属性是oldOne
     config.test.old_one=HelloWord:对应的属性是oldOne
     config.test.OLD_ONE=HelloWord:系统推荐写法对应的属性是oldOne
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
  3. @ConfigurationProperties支持@Validated;@Value不支持

  4. @ConfigurationProperties不支持EL表达式;@Value支持

  5. @ConfigurationProperties支持复杂类型;@Value不支持

    配置文件:在这里插入图片描述
    类:
    在这里插入图片描述

结果:
在这里插入图片描述

@ConfigurationProperties使用

在这里介绍两种使用方式
第一种:一般在配置环境的时候使用
配置文件:
在这里插入图片描述
对应类:
在这里插入图片描述
配置类:在这里有个@EnableConfigurationProperties注解,意思是让@ConfigurationProperties这个注解生效
在这里插入图片描述
在配置中debug看一下是否有数据:
在这里插入图片描述
第二种方式:一般通过注入来使用
配置文件:
在这里插入图片描述
对应类:只需要加一个能够被spring扫描到的注解就可以
在这里插入图片描述
写一个简单的controller用来测试
在这里插入图片描述

结果:
在这里插入图片描述

标签:HelloWord,oldOne,配置文件,Value,ConfigurationProperties,对比,属性
来源: https://www.cnblogs.com/sunny3158/p/16553917.html