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. 运行并测试

相关推荐
计算机学姐10 小时前
基于微信小程序的高校班务管理系统【2026最新】
java·vue.js·spring boot·mysql·微信小程序·小程序·mybatis
摇滚侠15 小时前
Spring Boot 3零基础教程,WEB 开发 Thymeleaf 核心语法 笔记39
spring boot·笔记·后端·thymeleaf
九丶弟16 小时前
SpringBoot的cache使用说明
java·spring boot·spring·cache
lang2015092817 小时前
打造专属Spring Boot Starter
java·spring boot·后端
lang2015092819 小时前
Spring Boot RSocket:高性能异步通信实战
java·spring boot·后端
蹦跑的蜗牛21 小时前
Spring Boot使用Redis实现消息队列
spring boot·redis·后端
凤山老林1 天前
SpringBoot 如何实现零拷贝:深度解析零拷贝技术
java·linux·开发语言·arm开发·spring boot·后端
Chan161 天前
流量安全优化:基于 Nacos 和 BloomFilter 实现动态IP黑名单过滤
java·spring boot·后端·spring·nacos·idea·bloomfilter
YUELEI1181 天前
Springboot WebSocket
spring boot·后端·websocket
小蒜学长1 天前
springboot基于JAVA的二手书籍交易系统的设计与实现(代码+数据库+LW)
java·数据库·spring boot·后端