Spring Boot中ConfigurationProperties注解的详解说明

java-教程王 SpringBoot 发布时间:2022-04-11 11:06:34 阅读数:13019 1
下文笔者讲述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();
    }
}
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaFramework/SpringBoot/202204/2833.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者