Springboot 在@Configuration注解的勒种 使用@Autowired或者@value注解 读取.yml属性失败

springboot中@value注解,读取yml属性失败

问题场景:spring

  配置ShrioConfig时,想注入.yml的参数进行配置springboot

解决办法:spa

  若是注释掉shiroEhcacheManager 如下全部bean的建立,项目能启动,当我@Bean(name = "lifecycleBeanPostProcessor")建立这个bean的时候就抛出了上面的异常。这么分析过来问题应该出在这个bean上。接口

  百度了一下,LifecycleBeanPostProcessor用于在实现了Initializable接口的Shiro bean初始化时调用Initializable接口回调,在实现了Destroyable接口的Shiro bean销毁时调用 Destroyable接口回调。it

  而我在建立的EhCacheManager 正是实现了Initializable接口,官方的在配置上面的说明大概意思就是 使用@Configuration配置,会在上下文初始化的时候强制的注入一些依赖。致使一下不可知的初始化。尤为是建立BeanPostProcessor 和 BeanFactoryPostProcessor的时候(LifecycleBeanPostProcessor正是BeanPostProcessor 的子类)。io

  应该将这些建立Bean的方法前面加上static。让使用configuration的类在没有实例化的时候不会去过早的要求@Autowired和@Value
进行注入。
  最后解决问题很简单,只要在建立LifecycleBeanPostProcessor的方法变为静态static方法。
百度

相关文章
相关标签/搜索