Spring读取配置文件属性
在Spring容器中使用
@Value注解
把环境变量里面的字段单独注入一个变量里面,有点笨重,使用只需要注入很少变量的情况。
@ConfigurationProperties(prefix = “”)
- 这个注解会把对应前缀下所有字段值注入实例变量里面,使用宽松绑定的规则
- @ConfigurationProperties不会向Spring容器注入相关处理类,只起到相关标记作用,要配合@Component或@EnableConfigurationProperties(指定类名)使用(Srping很多地方已经使用了,不用写也行)
注入Enviroment实例
该类是容器启动时读取yml文件创建的类,通过getProperty(“xxx.xxx”)读入相应的属性。
非spring容器管理的类使用yaml属性
- 首先要是创建一个Spring容器的带这个@ConfigurationProperties(prefix = “”)注解的配置信息Bean。
- 继承ApplicationContextAware类实现把Spring容器里面的配置信息Bean取出来,这需要使用@import(刚刚提到的这个继承类)交给Spring容器取处理才行(另外感觉好像使用容器的getbean()方法提取出来也行)
自定义作用域
- 实现Scope接口,主要时get()方法,实现自己的作用域逻辑。
- 实现BeanFactoryPostProcesser接口向为容器服务的BeanFactory里面注册作用域
- 使用@Scope(“注解名”)注解在对应的Bean上。