Spring 属性注入与SpringBoot属性注入
1. 定义所需要的配置文件
我这里以book.properties为例
book.id=1
book.name=三国演义
book.author=罗贯中
2.在对应的类进行属性注入
1.spring方式
@Component
@PropertySource("classpath:book.properties")
public class Book {
@Value("${book.id}")
private int id;
@Value("${book.name}")
private String name;
@Value("${book.author}")
private String author;
//省略set get..
@Override
public String toString() {
return "Book{" +
"id=" + id +
", name='" + name + '\'' +
", author='" + author + '\'' +
'}';
}
}
2.springboot方式
@Component
@PropertySource("classpath:book.properties")
public class Book {
@Value("${book.id}")
private int id;
@Value("${book.name}")
private String name;
@Value("${book.author}")
private String author;
//省略set get..
@Override
public String toString() {
return "Book{" +
"id=" + id +
", name='" + name + '\'' +
", author='" + author + '\'' +
'}';
}
}
3.区别
| 111 | @ConfigurationProperties | @Value |
|---|---|---|
| 功能 | 批量注入配置文件中的属性 | 一个个指定注入 |
| 松散绑定(松散语法) | 支持 | 不支持 |
| SpEL | 支持 | 支持 |
| JSR303数据校验@Validated | 支持 | 不支持 |
| 复杂类型封装 | 支持 | 不支持 |
浙公网安备 33010602011771号