Spring Boot配置绑定

所谓“配置绑定”就是把配置文件中的值与 JavaBean 中对应的属性进行绑定。通常,我们会把一些配置信息(例如,数据库配置)放在配置文件中,然后通过 Java 代码去读取该配置文件,并且把配置文件中指定的配置封装到 JavaBean(实体类) 中。

SpringBoot 提供了以下 2 种方式进行配置绑定:

使用 @ConfigurationProperties 注解
使用 @Value 注解
@ConfigurationProperties
通过 Spring Boot 提供的 @ConfigurationProperties 注解,可以将全局配置文件中的配置数据绑定到 JavaBean 中。下面我们以 Spring Boot 项目 helloworld 为例,演示如何通过 @ConfigurationProperties 注解进行配置绑定。

  1. 在 helloworld 的全局配置文件 application.yml 中添加以下自定义属性。
person:
  lastName: 张三
  age: 18
  boss: false
  birth: 1990/12/12
  maps: {
    k1: v1,k2: 12 }
  lists:
    ‐ lisi
    ‐ zhaoliu
  dog:
    name: 迪迪
    age: 5
  1. 在 helloworld 项目的 cgmx9880 中创建一个名为 Person 的实体类,并将配置文件中的属性映射到这个实体类上,代码如下。
package cgmx9880;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
import java.util.Date;
import java.util.List;
import java.util.Map;

/**

  • 将配置文件中配置的每一个属性的值,映射到这个组件中
  • @ConfigurationProperties:告诉 SpringBoot 将本类中的所有属性和配置文件中相关的配置进行绑定;
  • prefix = “person”:配置文件中哪个下面的所有属性进行一一映射
  • 只有这个组件是容器中的组件,才能使用容器提供的@ConfigurationProperties功能;
*/
@Component
@ConfigurationProperties(prefix = "person")
public class Person {
   
    private String lastName;
    private Integer age;
    private Boolean boss;
    private Date birth;
    private Map<String, Object> maps;
    private List<Object> lists;
    private Dog dog;
    public Person() {
   
    }
    public String getLastName() {
   
        return lastName;
    }
    public void setLastName(String lastName) {
   
        this.lastName = lastName;
    }
    public Integer getAge() {
   
        return age;
    }
    public void setAge(Integer age) {
   
        this.age = age;
    }
    public Boolean getBoss() {
   
        return boss;
    }
    public void setBoss(Boolean boss) {
   
        this.boss = boss;
    }
    public Date getBirth() {
   
        return birth;
    }
    public void setBirth(Date birth) {
   
        this.birth = birth;
    }
    public Map<String, Object> getMaps() {
   
        return maps;
    }
    public void setMaps(Map<String, Object> maps) {
   
        this.maps = maps;
    }
    public List<Object> getLists() {
   
        return lists;
    }
    public void setLists(List<Object> lists) {
   
        this.lists = lists;
    }
    public Dog 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值