SpringBoot中的@ConfigurationProperties简单介绍

在SpringBoot项目中,会将大量的参数配置在application.properties 或者application.yml文件中。通过@ConfigurationProperties注解,我们就可以获取配置文件的参数了

 

1、@ConfigurationProperties注解的作用

用来将类中的属性和配置文件中的配置进行绑定,给类中的属性赋值。

这个与@Value注解的作用有点类似

2、如何使用@ConfigurationProperties注解

首先定义类Student和Pet,这里介绍的是通过@ConfigurationProperties注解和application.yml文件进行绑定,给Student类中的属性赋值。

@Component
@ConfigurationProperties(prefix = "student")
public class Student {
    private String userName;
    private int age;
    private boolean sex;  //true:男,false: 女
    private Date birthday;
    private Map<String,Object> location;
    private String[] hobbies;
    private List<String> skills;
    private Pet pet;



public class Pet {
    private String nickName;
    private String strain;

application.yml文件中的配置如下:

student:
  user-name: 白起
  age: 18
  sex: true
  birthday: 2002/02/12
  location: {province: 湖南,city: 长沙 }
  hobbies: [足球,篮球]
#    - 足球
#    - 篮球
  skills: [编程,厨艺]
#    - 编程
#    - 厨艺
  pet:
    nickName: 旺财
    strain: 哈士奇

在使用@ConfigurationProperties注解的时候最好是在pom.xml文件中配置元数据依赖

        <!-- 元数据依赖 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <optional>true</optional>
        </dependency>

测试:

@SpringBootTest
class Springboot02ApplicationTests {

    @Autowired
    private Student student;

    @Test
    void contextLoads() {
        System.out.println(student);
    }
}

3、@ConfigurationProperties注解和@Value的区别

 

@ConfigurationProperties

 @value

注值

批量注入

单个注入

松散语法

支持

不支持

SPEL

不支持

支持

JSR303数据校验

支持

不支持

注入复杂类型

支持

不支持

1、松散语法,Student类中使用userName,而application.yml中user-name就是松散语法

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值