投稿 资料上传 提问 搜索
您现在的位置是: 首页 > 问答 > 正文

shiro配置出错: is not eligible for getting processed by all BeanPostProcessors

项目启动控制台输出如下错误:

 is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)

请问有什么好的解决方案???

问题回复
  1. lhHUI

    这句话的意思是:这个Bean的创建不会经过所有的BeanPostProcessor,它是在BeanPostProcessorChecker输出的。这意味着这个Bean创建时容器的RegistryBeanPostProcessor方法未结束。例如Shiro的ShiroFilterFactoryBean本身是一个BeanPostProcessor,我们在编写config时创建ShiroFilterFactoryBean会注入Realm/SecurityManager对象。所以容器注册RegistryBeanPostProcessor会获取ShiroFilterFactoryBean对象,则此时需要对ShiroFilterFactoryBean对象进行注入,则此时注入的对象并不被所有BeanPostProcessor进行处理(因为有部分BeanPostProcessor在ShiroFilterFactoryBean对象注册后注册的)

    回复
  2. 简讯
    简讯IT技术之家

    出现这个问题,一般是你在开发过程中,因为不清楚Spring容器对BeanPostProcessor、Bean的装载顺序,从而导致有时候我们需要提前用到Bean的功能;可以用实现ApplicationContextAware接口的方式

    回复
  3. 简讯
    简讯IT技术之家

    个人理解

        BeanPostProcessor是控制Bean初始化开始和初始化结束的接口;
        换句话说实现BeanPostProcessor的bean会在其他bean初始化之前完成,BeanPostProcessor会通过接口方法检查其他类型的Bean并做处理。  

    回复