spring配置文件(application.properties、application.yml、application.yaml))中的配置项加载到自定义类中的方法
spring配置文件(application.properties、application.yml、application.yaml))中的配置项加载到自定义类中的方法
application.properties文件内容:
util.app.name = test
util.app.version = 1.0
1.通过@Value注解单个获取
注:该注解是由BeanPostProcessor来处理的,因此该注解不能使用在BeanPostProcessor和BeanFactoryProcessor类中。
@Component public class PropertiesValue { @Value("${util.app.name}") private String name; @Value("${util.app.version}") private String version; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getVersion() { return version; } public void setVersion(String version) { this.version = version; } }
2.通过@ConfigurationProperties和@Componet注解批量获取
基于前缀进行批量获取配置参数值。@ConfiguratonProperties可以使用在类定义前,也可以使用在@Configuration配置类中的@Bean方法前。
@ConfigurationProperties(prefix="util.app") @Component public class PropertiesValue { private String name; private String version; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getVersion() { return version; } public void setVersion(String version) { this.version = version; } }
3.通过@ConfigurationProperties和@EnableConfigurationProperties(AutoConfig.class)注解批量获取
@ConfigurationProperties(prefix="util.app") public class PropertiesValue { private String name; private String version; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getVersion() { return version; } public void setVersion(String version) { this.version = version; } }
@Configuration
@EnableConfigurationProperties(PropertiesValue.class)
public class AppConfig { }
4.通过@ConfigurationProperties和@ConfigurationPropertiesScan注解批量获取