Spring Boot中ConfigurationProperties注解的详解说明

转自:

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();
    }
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值