转自:
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 版权协议,转载请附上原文出处链接和本声明。