使用@ConfigurationProperties注解读取properties,yml配置文件
一、添加依赖包,支持 @ConfigurationProperties 注解
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
</dependency>
二、读取配置文件
prefix属性为读取内容的前置key
具体实现如下:
配置文件如下:
system.user.name=zhangsan
system.user.password=123456
system.admin.name=admin
system.admin.password=admin
system.address=chuangzhou
system.token[0]=0
system.token[1]=1
system.token[2]=2
方式1:使用@ConfigurationProperties注解加@component注解,初始化注入到Bean容器
@Component
@ConfigurationProperties(prefix = "system")
@Data
public class SystemProperties {
private final UserInfo user= new UserInfo();
private final UserInfo admin = new UserInfo();
private final String address;
private final List<String> token;
@Data
public static class UserInfo{
private String name;
private String password;
}
}
方式2:通过@Bean的方式进行声明,此处加载启动类
@SpringBootApplication
public class DemoApplication {
@Bean
@ConfigurationProperties(prefix = "system")
public SystemProperties systemProperties() {
return new SystemProperties();
}
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
方式3:通过@value 读取指定内容
方式4:通过@Environment读取
三、读取自定义properties文件
使用@PropertySource注解,可以配合 @ConfigurationProperties注解读取指定内容
通过Configuration配置类方式注入