spring boot @ConfigurationProperties使用

本文介绍了Spring Boot中使用@ConfigurationProperties注解进行配置绑定的方法,并对比了@Value注解的使用方式。详细讲述了如何通过YML文件配置属性并映射到POJO类中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Spring-boot可以用类注解@ConfigurationProperties代替在字段上一个一个使用@value注解,这种方式最好使用yml文件。因为properties文件默认的编码不是utf-8。需要使用@PropertySource注解来规定字符集。而且需要引入处理器。我试了一下,不好使呢为什么。。。

    <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <optional>true</optional>
        </dependency>

另外官方文档介绍使用@ConfigurationProperties注解还需要在@EnableConfigurationProperties注解上注册pojo。

@Configuration 
@EnableConfigurationProperties(AcmeProperties.class)
 public  class MyConfiguration {
}

就像上面这样,但我试了一下。不用这个注释完全可以。又是不知道为什么。

下面是例子

pojo:

@Repository
@ConfigurationProperties(prefix = "car")
//@PropertySource(value = "classpath:application.properties",encoding = "utf-8")
public class car {

    List<String> list =new ArrayList<>();

    public List<String> getList() {
        return list;
    }

    public void setList(ArrayList<String> list) {
        this.list = list;
    }

    HashMap<String,String> driver;

    public HashMap<String, String> getDriver() {
        return driver;
    }

    public void setDriver(HashMap<String, String> driver) {
        this.driver = driver;
    }

    int speed;

    public int getSpeed() {
        return speed;
    }

    public void setSpeed(int speed) {
        this.speed = speed;
    }

    String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

yml:

car:
    name: 奇瑞
    driver:
           "[driverOne]": 王
           "[speed]": 100
    list: 王 李
    speed: 180

@ConfigurationProperties注解有一个属性prefix一个前缀,类似过滤用的吧。在上方yml中就是根元素car。也可以在内部类中使用该注解赋值。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值