@ConfigurationProperties注解:使用此注解可以配置信息的key和value就会对应的配置到类中的属性上,具体的示例如下:
配置文件:
addr.ip = 192.168.99.250
addr.port = 8998
实体类:
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
@Data
// 注解前缀和配置文件前缀相对应
@ConfigurationProperties(prefix = "addr")
public class Address {
/**
* ip地址
*/
private String ip;
/**
* 端口号
*/
private String port;
}
service层:
@Service
public class AddressService {
@Resource
Address address;
/**
* 获取信息
*/
public void getAddrInfo(){
System.out.println(address.toString());
}
}
测试结果:
注意:
1、SpringBoot Configuration Annotation Processor not configured
说明没有配置springboot的自动配置注解处理器,及spring-boot-configuration-processor,在使用到ConfigurationProperties注解时无法识别。
方案:在pom中增加spring-boot-configuration-processor组件。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
2、在启动类上添加注解:@EnableConfigurationProperties({Address.class}),用 @EnableConfigurationProperties注解使 @ConfigurationProperties生效,并从IOC容器中获取bean。