shiro配置出错: is not eligible for getting processed by all BeanPostProcessors 我叫你baba IT技术之家 2020/4/3 13:32 3238 0 0 项目启动控制台输出如下错误: is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)请问有什么好的解决方案???
这句话的意思是:这个Bean的创建不会经过所有的BeanPostProcessor,它是在BeanPostProcessorChecker输出的。这意味着这个Bean创建时容器的RegistryBeanPostProcessor方法未结束。例如Shiro的ShiroFilterFactoryBean本身是一个BeanPostProcessor,我们在编写config时创建ShiroFilterFactoryBean会注入Realm/SecurityManager对象。所以容器注册RegistryBeanPostProcessor会获取ShiroFilterFactoryBean
对象,则此时需要对ShiroFilterFactoryBean对象进行注入,则此时注入的对象并不被所有BeanPostProcessor进行处理(因为有部分BeanPostProcessor在ShiroFilterFactoryBean对象注册后注册的)出现这个问题,一般是你在开发过程中,因为不清楚Spring容器对
BeanPostProcessor
、Bean的装载顺序,从而导致有时候我们需要提前用到Bean的功能;可以用实现ApplicationContextAware
接口的方式个人理解:
BeanPostProcessor是控制Bean初始化开始和初始化结束的接口;
换句话说实现BeanPostProcessor的bean会在其他bean初始化之前完成,BeanPostProcessor会通过接口方法检查其他类型的Bean并做处理。