Springboot在@Configuration注解的勒种使⽤@Autowired或者
@。。。
springboot中@value注解,读取yml属性失败
问题场景:spring boot依赖注入原理
配置ShrioConfig时,想注⼊.yml的参数进⾏配置
解决办法:
如果注释掉shiroEhcacheManager 以下所有bean的创建,项⽬能启动,当我@Bean(name = "lifecycleBeanPostProcessor")创建这个bean的时候就抛出了上⾯的异常。这么分析过来问题应该出在这个bean上。
百度了⼀下,LifecycleBeanPostProcessor⽤于在实现了Initializable接⼝的Shiro bean初始化时调⽤Initializable接⼝回调,在实现了Destroyable接⼝的Shiro bean销毁时调⽤ Destroyable接⼝回调。
⽽我在创建的EhCacheManager 正是实现了Initializable接⼝,官⽅的在配置上⾯的说明⼤概意思就是使
⽤@Configuration配置,会在上下⽂初始化的时候强制的注⼊⼀些依赖。导致⼀下不可知的初始化。尤其是创建BeanPostProcessor 和 BeanFactoryPostProcessor的时候(LifecycleBeanPostProcessor正是BeanPostProcessor 的⼦类)。
应该将这些创建Bean的⽅法前⾯加上static。让使⽤configuration的类在没有实例化的时候不会去过早的要求@Autowired和@Value
进⾏注⼊。
最后解决问题很简单,只要在创建LifecycleBeanPostProcessor的⽅法变为静态static⽅法。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论