天天看点

Spring读取yaml配置文件属性和自定作用域Spring读取配置文件属性

Spring读取配置文件属性

在Spring容器中使用

@Value注解

把环境变量里面的字段单独注入一个变量里面,有点笨重,使用只需要注入很少变量的情况。

@ConfigurationProperties(prefix = “”)

  • 这个注解会把对应前缀下所有字段值注入实例变量里面,使用宽松绑定的规则
  • @ConfigurationProperties不会向Spring容器注入相关处理类,只起到相关标记作用,要配合@Component或@EnableConfigurationProperties(指定类名)使用(Srping很多地方已经使用了,不用写也行)

注入Enviroment实例

该类是容器启动时读取yml文件创建的类,通过getProperty(“xxx.xxx”)读入相应的属性。

非spring容器管理的类使用yaml属性

  1. 首先要是创建一个Spring容器的带这个@ConfigurationProperties(prefix = “”)注解的配置信息Bean。
  2. 继承ApplicationContextAware类实现把Spring容器里面的配置信息Bean取出来,这需要使用@import(刚刚提到的这个继承类)交给Spring容器取处理才行(另外感觉好像使用容器的getbean()方法提取出来也行)

自定义作用域

  1. 实现Scope接口,主要时get()方法,实现自己的作用域逻辑。
  2. 实现BeanFactoryPostProcesser接口向为容器服务的BeanFactory里面注册作用域
  3. 使用@Scope(“注解名”)注解在对应的Bean上。