配置文件注入这一部分内容主要有一下几点内容:
1.全局配置文件值注入
2.自定义配置文件值注入
3.自定义的Spring 配置文件生效
首先介绍全局配置文件的值注入,全局配置文件值注入有两种方式,第一种是使用@ConfigurationProperties注解,另外一种是使用@Value注解,这两个注解默认是从全局配置文件(application.yml/properties)中获取属性的值。
@ConfigurationProperties用法如下,它会将前缀为指定值的属性的值赋给Bean中相应的字段,但是必须注意的是这个Bean必须是容器中的一个组件。
package com.springboot.entity; import java.util.Date; import java.util.List; import java.util.Map; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Component; @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 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 isBoss() { 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 getDog() { return dog; } public void setDog(dog dog) { this.dog = dog; } public String toString() { return "Person{" + "lastName='" + lastName + '\'' + ", age=" + age + ", boss=" + boss + ", birth=" + birth + ", maps=" + maps + ", lists=" + lists + ", dog=" + dog + '}'; } }
@Value 注解的使用方法如下,它会将配置文件中的值赋给被添加注解的变量。
@Value("${person.lastName}") private String Name;
这两种方法的区别是: