简介 Spring源码中大量使用了ConfigurationProperties注解,比如server.port就是由该注解获取到的,通过与其他注解配合使用,能够实现Bean的按需配置。...该注解有一个prefix属性,通过指定的前缀,绑定配置文件中的配置,该注解可以放在类上,也可以放在方法上 @Target({ ElementType.TYPE, ElementType.METHOD }...) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface ConfigurationProperties {} 可以从注解说明中看到...,当将该注解作用于方法上时,如果想要有效的绑定配置,那么该方法需要有@Bean注解且所属Class需要有@Configuration注解。...和@value 有着相同的功能,但是@ConfigurationProperties的写法更为方便。
摘要本文将详细介绍@ConfigurationProperties注解的使用方法、工作原理以及在实际开发中的应用。...概述@ConfigurationProperties注解用于将配置文件中的属性绑定到一个组件的Bean上。...@ConfigurationProperties注解:@ConfigurationProperties注解用于将外部配置文件中的属性绑定到这个类的字段上。...@ConfigurationProperties注解:@ConfigurationProperties(prefix = "database")注解用于将外部配置文件中的属性绑定到这个类的字段上。...小结@ConfigurationProperties注解是Spring Boot中用于简化配置管理的强大工具。
ConfigurationProperties 注解的使用 将配置文件中的配置,以属性的形式自动注入到 实体中。...locations 这个注解属性,不知道为什么不可以使用。用来指定其他配置文件名。.../** * Description 测试配置类 * * @Author liukai * @Date 2017/7/23. */ @Component //不加这个注解的话, 使用@...Autowired 就不能注入进去了 @ConfigurationProperties(prefix = "service",ignoreUnknownFields = false) public class...myConfigTest.getProperties(); } } 4.结果 {"name":"my-test-name","ip":"192.168.1.1"} 5.也可修饰配置类方法 @ConfigurationProperties
@ConfigurationProperties注解的作用是可以根据一个前缀将配置文件的属性映射成一个POJO实体类,只要属性名一致就能自动注入进去,使用起来非常方便,这一点容易与@Configuration...注解混淆,@Configuration也可以注解一个配置类,不一样的是它需要为每个属性再次声明绑定的字段,稍微复杂,所以推荐使用@ConfigurationProperties注解。...现在我们就可以通过@ConfigurationProperties注解将其映射成一个配置类,这样使用起来就非常方便了: ?
版本 springboot 2.6.x 现象 配置文件使用@ConfigurationProperties注解为bean注入属性 @Configuration public class DataSourceConfig...{ @Bean("datasourceProperties.ds1") @ConfigurationProperties(prefix = "spring.datasource.ds1...return new DataSourceProperties(); } } 正常运行应用可以成功注入属性,但是运行测试时方法返回空对象无法注入属性 解决 在单元测试代码上添加注解
使用@ConfigurationProperties注解注入 @RunWith(SpringRunner.class) @SpringBootTest @ConfigurationProperties(...; @Test public void test10() { System.out.println(id); } } 输出 null,注入失败 原因:使用 @ConfigurationProperties...注解的方式注入为每个注入的字段添加setter方法 package com.futao.springmvcdemo; import org.junit.Test; import org.junit.runner.RunWith...org.springframework.test.context.junit4.SpringRunner; @RunWith(SpringRunner.class) @SpringBootTest @ConfigurationProperties...使用@Value注解 package com.futao.springmvcdemo; import org.junit.Test; import org.junit.runner.RunWith;
文章目录 1.如何使用@ConfigurationProperties 2.配置Annotation Processor 3.通过@Value注解实现 4....@Configuration与@Value对比 在sprigboot中,处理配置文件最好的方法是采用@ConfigurationProperties注解。...2.配置Annotation Processor 在使用了ConfigurationProperties注解之后,需要注意的是,当我们在idea中打开Person类,会出现红色的提示“SpringBoot...3.通过@Value注解实现 如果我们不采用@ConfigurationProperties,那么我们仍然能够通过@Value注解来实现上述功能。但是@value比较复杂,需要在每个属性上面去指定。...@Configuration与@Value对比 这两个注解的主要区别见下表: 区别项 @ConfigurationProperties @Value 功能说明 能够批量将配置文件中的属性进行注入 只能按当个属性进行注入
有时候有这样的情景,想把配置文件的信息,读取并自动封装成实体类,这样在代码里使用就方便多了,这时候,我们就可以使用@ConfigurationProperties,它可以把同类的配置信息自动封装成实体类...还可以把@ConfigurationProperties直接定义在@bean注解上,这时bean实体类就不用@Component和@ConfigurationProperties了 @RestController
@ConfigurationProperties 当想需要获取到配置文件数据时,除了可以用 Spring 自带的 @Value 注解外,SpringBoot 还提供了一种更加方便的方式:@ConfigurationProperties...注解是写在类定义的上方,而第三方开发的bean源代码不是你自己书写的,也不可能到源代码中去添加@ConfigurationProperties注解,这种问题该怎么解决呢?...使用@ConfigurationProperties注解其实可以为第三方bean加载属性,格式特殊一点而已。...@EnableConfigurationProperties 我们定义bean不是通过类注解定义就是通过@Bean定义,使用@ConfigurationProperties注解可以为bean进行属性绑定...,那在一个业务系统中,哪些bean通过注解@ConfigurationProperties去绑定属性了 了呢?
在Spring Boot中注解@ConfigurationProperties有三种使用场景,而通常情况下我们使用的最多的只是其中的一种场景。本篇文章带大家了解一下三种场景的使用情况。...场景一 使用@ConfigurationProperties和@Component注解到bean定义类上,这里@Component代指同一类实例化Bean的注解。...场景二 使用@ConfigurationProperties和@Bean注解在配置类的Bean定义方法上。...@Configuration注解的配置类中通过@Bean注解在某个方法上将方法返回的对象定义为一个Bean,并使用配置文件中相应的属性初始化该Bean的属性。...场景三 使用@ConfigurationProperties注解到普通类,然后再通过@EnableConfigurationProperties定义为Bean。
@ConfigurationProperties当想需要获取到配置文件数据时,除了可以用 Spring 自带的 @Value 注解外,SpringBoot 还提供了一种更加方便的方式:@ConfigurationProperties...注解是写在类定义的上方,而第三方开发的bean源代码不是你自己书写的,也不可能到源代码中去添加@ConfigurationProperties注解,这种问题该怎么解决呢?...使用@ConfigurationProperties注解其实可以为第三方bean加载属性,格式特殊一点而已。...@EnableConfigurationProperties我们定义bean不是通过类注解定义就是通过@Bean定义,使用@ConfigurationProperties注解可以为bean进行属性绑定,...那在一个业务系统中,哪些bean通过注解@ConfigurationProperties去绑定属性了 了呢?
我们想把配置文件的信息,读取并自动封装成实体类,这样子,我们在代码里面使用就轻松方便多了,这时候,我们就可以使用@ConfigurationProperties,它可以把同类的配置信息自动封装成实体类...admin password : kyjufskifas2jsfs remoteAddress : 192.168.1.1 这时候我们可以定义一个实体类在装载配置文件信息 @Component @ConfigurationProperties...} public void setPassword(String password) { this.password = password; } } 我们还可以把@ConfigurationProperties...还可以直接定义在@bean的注解上,这是bean实体类就不用@Component和@ConfigurationProperties了 @SpringBootApplication public class...@Bean @ConfigurationProperties(prefix = "connection") public ConnectionSettings connectionSettings
我们想把配置文件的信息,读取并自动封装成实体类,这样子,我们在代码里面使用就轻松方便多了,这时候,我们就可以使用@ConfigurationProperties,它可以把同类的配置信息自动封装成实体类...admin password : kyjufskifas2jsfs remoteAddress : 192.168.1.1 这时候我们可以定义一个实体类在装载配置文件信息 @Component @ConfigurationProperties...public void setPassword(String password) { this.password = password; } } 我们还可以把@ConfigurationProperties...还可以直接定义在@bean的注解上,这是bean实体类就不用@Component和@ConfigurationProperties了 @SpringBootApplication public class...@Bean @ConfigurationProperties(prefix = "connection") public ConnectionSettings connectionSettings
(Ctrl+F1) Inspection info: Verifies @ConfigurationProperties setup. New in 2018.3 ?...解决办法:加上@Component注解 ?
SpringBoot @ConfigurationProperties详解 简介 本文将会详细讲解@ConfigurationProperties在Spring Boot中的使用。...-- lookup parent from repository --> 一个简单的例子 @ConfigurationProperties需要和@Configuration配合使用,...mail.host_name mail.host-name mail.HOST_NAME 如果你不想使用@Configuration, 那么需要在@EnableConfigurationProperties注解中手动导入配置文件如下...和@Bean @ConfigurationProperties也可以和@Bean一起使用如下所示: @Data public class Item { private String name;...我们也可以在注解中指定单位: @DurationUnit(ChronoUnit.DAYS) private Duration timeInDays; 对应的配置文件如下: conversion.timeInDays
一、使用方式 @ConfigurationProperties是springboot框架中一个比较重要的注解,和@EnableConfigurationProperties一起使用,用于将配置属性绑定到...属性绑定能力的开启是@EnableConfigurationProperties注解,我们就从@EnableConfigurationProperties注解开始分析属性绑定的工作原理。...value数组,然后调用ConfigurationPropertiesBeanRegistrar实例的register方法注册ConfigurationProperties注解的相关BeanDefination...解析ConfigurationProperties注解相关属性,然后进行相关BeanDefination注册,调用内部方法registerBeanDefinition: private void registerBeanDefinition...这里细心的小伙伴可以发现,有一个可以优化的地方,前边先寻找工厂方法,然后检查是否需要绑定,如果前边执行过了,但是没有解析到ConfigurationProperties注解,这里就返回了,前边的调用就是无用功
我这里使用的Spring Boot 2.0.1 版本 配置文件是 yml 格式文件 @ConfigurationProperties 在yml配置文件中: ? 在实体类中: ?...重点是实体类上的两个注解: @Component @ConfigurationProperties(prefix = "jiang") : 这个注解的作用就是将一个实体类的属性和一个配置文件绑定一起,...我们可以通过修改配置文件的值来控制这个实体类的属性值 这两个注解见名知意 使用Test测试: ?...在这里People不可以使用@Value注解注入 ? 这就是两种常用的自定义属性注入方式。...还有一些其他的注解: @ImportResource可以导入xml配置文件, @PropertySource可以给配置类导入properties配置文件,通常和@Value一起用 ... ...
注解,我们可以方便的获取这些参数值 使用 @ConfigurationProperties 配置模块 假设我们正在搭建一个发送邮件的模块。...总结 Spring Boot 的 @ConfigurationProperties 注解在绑定类型安全的 Java Bean 时是非常强大的,我们可以配合其注解属性和 @DeprecatedConfigurationProperty...附加说明 以为 @ConfigurationProperties 注解满足我们的全部需要了吗?其实不然,Spring 官网明确给出了该注解和 @Value 注解的对比: ?...如果使用 SpEL 表达式,我们只能选择 @Value 注解 另外我之前在阅读 RabbitMQ 源码时,发现 RabbitProperties 类充分的利用了 @ConfigurationProperties...技术也一样,各种框架的源码就是学生时代的古诗词和文言文,我们要多多查看阅读,甚至背诵编程思想,这样就可以写出越来越优雅的代码 关于 @ConfigurationProperties 注解的使用,这里推荐
如何使用 定义两个对象,一个学生对象,对应着一个老师对象,代码如下: @ConfigurationProperties 学生类 @Component @ConfigurationProperties(prefix...从上面两个测试结果可以看出,使用 @ConfigurationProperties 注解时,yml 中的属性名为 last_name 而学生类中的属性为 lastName 但依然能取到值,而使用 @value...@Value 如上述介绍 @Value 注解使用方法时,有这样一段代码: @Value("#{12*2}") // #{SpEL} private Integer age; 证明 @Value 是支持...,注释 @value 注解。...而上文介绍 @ConfigurationProperties 和 @Value 的使用方法时已经证实 @ConfigurationProperties 是支持复杂类型封装的。
领取专属 10元无门槛券
手把手带您无忧上云