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支持不支持
复杂类型封装支持不支持
posted @ 2019-12-14 16:30  麦田的老哥  阅读(9)  评论(0)    收藏  举报