application.yml配置:
book:
name: 一个人的朝圣
author: 蕾秋·乔伊斯
age: 35
Spring的@Value
程序代码里,Spring主要在@Value注解的参数中使用EL表达式。
- 注入普通字符串
- 注入操作系统属性
- 注入表达式运算结果
- 注入其他Bean的属性
- 注入文件内容
- 注入网址内容
- 注入属性文件(注意:用的是$符号)
@Component
@Data
public class BookConfig {
@Value("${book.name}")
private String bookName;
@Value("${book.author}")
private String bookAuthor;
@Value("${book.age}")
private int bookAge;
}
Spring Boot的@ConfigurationProperties
![复制代码](https://img-blog.csdnimg.cn/img_convert/48304ba5e6f9fe08f3fa1abda7d326ab.png)
@Component
@ConfigurationProperties(prefix = "book")
@Data
public class BookConfig {
private String name;
private String author;
private int age;
}
可以直接通过 @Autowired 声明调用
@Autowired
private BookConfig bookConfig;
@ConfigurationProperties有两个属性
- prefix:指定properties的配置的前缀
- locations:指定properties文件的位置
终结:
上面这种使用@Value注入每个配置在实际项目中会显得格外麻烦,因为我们的配置通常会是许多个,就要使用@Value注入很多次。
Spring Boot提供了基于类型安全的配置方式,通过@ConfigurationProperties将properties属性和一个Bean关联,从而实现类型安全的配置。