SpringBoot配置类注解【@PropertySource和@ConfigurationProperties】
程序员文章站
2024-01-08 08:22:22
...
@PropertySource
@PropertySource将指定配置文件加载到spring容器中,但是不包括配置文件中属性的注入。
案例代码:
config.properties
spring.fut.username=fut
spring.fut.password=123456
spring.fut.age=18
FutConfigure.java
@ToString
@Data
@Configuration
@PropertySource(value = { "classpath:config.properties"}, ignoreResourceNotFound = true)
public class FutConfigure {
@Value("${spring.fut.username}")
private String username;
@Value("${spring.fut.password}")
private String password;
@Value("${spring.fut.age}")
private int age;
}
以上类有3个含义:
- FutConfigure的作用就是接收外部properties文件里属性的值。
- @PropertySource表明了它要将classpath路径下的config.properties加载到spring容器中。
- @Value表明它要将spring容器中对应key的值注入到FutConfigure类属性中。
有木有觉得使用起来很方便?两个注解就成功的将外部的properties文件加载到了内存中。并且被spring容器管理起来,这样任何地方想要使用它,都可以直接从spring容器中去获取。
下面思考下,如果FutConfigure属性超级多,那是不是我要不停地加上@Value呢?这就要使用到上次讲解的注解@ConfigurationProperties。
@ConfigurationProperties(再回顾下,加深印象)
@ConfigurationProperties的作用就是将配置文件里的属性值映射到被注解的类里面。显然,这个注解是类级别的。
案例代码:
FutConfigure.java
@ToString
@Data
@Configuration
@PropertySource(value = { "classpath:config.properties"}, ignoreResourceNotFound = true)
@ConfigurationProperties(prefix = "spring.fut")
public class FutConfigure {
// @Value("${spring.fut.username}")
private String username;
// @Value("${spring.fut.password}")
private String password;
// @Value("${spring.fut.age}")
private int age;
}
以上类有3个含义:
- FutConfigure的作用就是接收外部properties文件里属性的值。
- @PropertySource表明了它要将classpath路径下的config.properties加载到spring容器中。
- @ConfigurationProperties表明了它要将config.properties文件里以spring.fut开头的属性值注入到FutConfigure对应的属性当中。
@ConfigurationProperties和@Value,一个适用类级别的注入,一个适用属性和方法级别的注入。
推荐阅读
-
SpringBoot 之 @Transaction注解的类级别和方法级别的区别
-
通过@PropertySource和@ConfigurationProperties来加载(读取)自定义配置文件
-
SpringBoot学习(四)配置文件值注入 @ConfigurationProperties和@Value两种方式区别
-
SpringBoot中@ConfigurationProperties和@value绑定配置信息的区别
-
SpringBoot配置类注解【@PropertySource和@ConfigurationProperties】
-
SpringBoot 配置高级 ConfigurationProperties注解 宽松绑定/松散绑定 常用计量单位绑定 数据校验
-
spring boot中关于获取配置文件注解的使用@ConfigurationProperties、@Value、@PropertySource
-
SpringBoot2 java配置方式 Configuration和PropertySource结合读取配置文件
-
SpringBoot配置中@ConfigurationProperties和@Value的区别
-
springboot @ConfigurationProperties和@PropertySource的区别