转自:
Spring Boot中ConfigurationProperties注解的详解说明
下文笔者讲述Spring Boot中ConfigurationProperties注解的相关说明,如下所示:
我们都知道在Spring中,可以使用@Value对单个属性进行注入配置操作 但是很多配置都具有一定的层级,那么此时Spring提供了一个基于层级配置的注解,如下所示
@ConfigurationProperties
@ConfigurationProperties注解的功能:
将properties属性和一个Bean及其属性关联
从而实现类型安全配置
例:
@ConfigurationProperties加载properties文件内的配置 使用prefix属性指定配置文件中定义的properties配置的统一前缀
@ConfigurationProperties(prefix = "remote"}) ---Spring Boot1.5之前,使用以下配置指定properties文件的位置 @ConfigurationProperties(prefix = "remote",locations={"classpath:remote.properties"}) 示例代码如下: remote.address= www.java265.com remote.port= 9090 @Component @PropertySource({"classpath:remote.properties"}) @ConfigurationProperties(prefix = "remote") public class RemoteConfig { private String address; private int port; // getter/stetter方法 } 对应RemoteConfig的Bean的使用: @RestController public class ConfigurationController { @Resource private RemoteConfig remoteConfig; @GetMapping public void getInfo() { System.out.println("地址:" + remoteConfig.getAddress()); System.out.println("端口:" + remoteConfig.getPort()); } } //测试 @SpringBootTest @AutoConfigureMockMvc class ConfigurationControllerTest { @Autowired private MockMvc mockMvc; @Test void getInfo() throws Exception { mockMvc.perform(MockMvcRequestBuilders.get("/")); } } -----运行以上代码,将输出以下信息------ 地址:www.java265.com 端口:9090
例:
@ConfigurationProperties注解应用于Bean方法上的示例分享
例:
@Configuration public class MyConfig { @Bean @ConfigurationProperties(prefix = "user") public User user() { return new User(); } }
版权声明:本文为qq_25073223原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。