SpringBoot @ConfigurationProperties 注解使用

@ConfigurationProperties 用于将配置文件(如 application.properties 或 application.yml)中的属性批量绑定到一个 Java Bean 中。

1. 定义配置文件

在 application.properties 或 application.yml 中定义一组具有相同前缀的属性。

application.yml :

yaml 复制代码
person:
  id: 1
  name: tom
  hobby:
    - play
    - read
    - sleep
  family:
    - father
    - mother
  map:
    k1: v1
    k2: v2
  pet:
    type: dog
    name: kity

application.properties :

yaml 复制代码
person.id=1
person.name=tom
person.hobby=play,read,sleep
person.family=father,mother
person.map.k1=v1
person.map.k2=v2
person.pet.type=dog
person.pet.name=kity

2. 创建配置类

创建一个 Java Bean,并使用 @ConfigurationProperties 注解将配置文件中的属性绑定到该 Bean 中。

Person.java

java 复制代码
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

import java.util.Arrays;
import java.util.List;
import java.util.Map;

@Component    // 用于将Person类作为Bean注入到Spring容器中
@ConfigurationProperties(prefix = "person") // 将配置文件中以person开头的属性注入到该类中
public class Person {
    private int id;            //id
    private String name;      //名称
    private List hobby;       //爱好
    private String[] family; //家庭成员
    private Map map;
    private Pet pet;          //宠物

  //省略getter,setter,toString
}

Pet.java

java 复制代码
public class Pet {
    private String type;
    private String name;

    //省略getter,setter,toString
}

3. 测试方法

java 复制代码
@SpringBootTest
public class WebTest {

    @Autowired
    private Person person;
    
    @Test
    public void test(){
        System.out.println(person);
    }

}

4. 运行并测试

相关推荐
changhong19869 小时前
如何在 Spring Boot 中配置数据库?
数据库·spring boot·后端
月月玩代码11 小时前
Actuator,Spring Boot应用监控与管理端点!
java·spring boot·后端
Java程序之猿12 小时前
SpringBoot + camel+IBM MQ实现消息队列处理
java·spring boot·mybatis
z_鑫12 小时前
SpringCloud FeignClient 中 Bean 重复注册冲突解决方案解析
java·spring boot·spring cloud
Amour恋空13 小时前
SpringBoot+Lombok+Logback实现日志
spring boot·后端·logback
孫治AllenSun13 小时前
【线程池】优化等待队列和拒绝策略
java·spring boot·spring cloud
毕设源码-邱学长13 小时前
【开题答辩全过程】以 基于Spring Boot的体育场地预约管理系统为例,包含答辩的问题和答案
java·spring boot·后端
摇滚侠14 小时前
讲一讲 SpringMVC,线程变量 ThreadLocal 的使用
java·spring boot·intellij-idea
李慕婉学姐17 小时前
Springboot养老服务管理系统c0t92vu6(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
数据库·spring boot·后端
把你毕设抢过来18 小时前
基于Spring Boot的演唱会购票系统的设计与实现(源码+文档)
java·spring boot·后端