Spring Boot中获取配置文件的注解
一. @Value与@ConfigurationProperties
@ConfigurationProperties | @Value | |
功能 | 批量注入配置文件中的属性 | 一个个指定 |
松散绑定(松散语法) | 支持 | 不支持 |
SPEL | 不支持 | 支持 |
JSR303数据校验 | 支持 | 不支持 |
复杂类型封装 | 支持 | 不支持 |
不管是yml配置文件还是properties配置文件,他们都能获取到值。
一般情况下:如果我们只是在某个业务逻辑中需要获取一下配置文件中的某项值,使用@Value。
如果我们使用JavaBean来与配置文件进行映射,我们直接使用@ConfigurationProperties。
二. @PropertySource与@ImportResource与@Bean
[email protected]:加载指定的配置文件(@ConfigurationProperties默认从全局配置文件中获取值)
eg:我这有个配置文件person.properties
person.name=xuye person.age=18 person.birth=1993/12/29 person.maps.k1=v1 person.maps.k2=12 person.lists=a,b,c person.pet.name=dog person.pet.age=1
[email protected]:导入spring配置文件,让配置文件里面的内容生效。
Spring Boot里面没有Spring的配置文件,我们自己编写的配置文件,也不能自动识别;想让Spring的配置文件生效,加载进来;@ImportResource标注在一个配置类上(例如放在Spring Boot启动类上)。
[email protected]:Spring Boot是采用全注解的方式,一般我们使用配置类的方式来自声明配置文件。
编写一个配置类,放到Spring Boot组件中
1. 在类上添加@Configuration
2. 在某个方法上添加@Bean,这个方法返回值就是我们要的某个实例(方法的返回值添加到容器中,容器中这个组件的名称就是方法名)。