@ConfigurationProperties 用于将配置文件(如 application.properties 或 application.yml)中的属性批量绑定到一个 Java Bean 中。
1. 定义配置文件
在 application.properties 或 application.yml 中定义一组具有相同前缀的属性。
application.yml :
person:id: 1name: tomhobby:- play- read- sleepfamily:- father- mothermap:k1: v1k2: v2pet:type: dogname: kity
application.properties :
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
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; //idprivate String name; //名称private List hobby; //爱好private String[] family; //家庭成员private Map map;private Pet pet; //宠物//省略getter,setter,toString
}
Pet.java
public class Pet {private String type;private String name;//省略getter,setter,toString
}
3. 测试方法
@SpringBootTest
public class WebTest {@Autowiredprivate Person person;@Testpublic void test(){System.out.println(person);}}