不只对一个罐中的豆调用postProcessAfterInitialization

问题描述

我们的项目中有多个模块。我已经为BeanPostProcessor引入了impl类,并期望将为产品中每个模块中的bean调用postProcessAfterInitialization()方法。除了一个罐中的所有豆子以外,它的工作方式相似。

我在2.jar中介绍了imp

@Component
public class RBACCheckingBeanPostProcessor implements BeanPostProcessor,PriorityOrdered,BeanClassLoaderAware
{
    @Override
    public Object postProcessAfterInitialization(Object bean,String beanName) throws BeansException
    {}
}

还有另一个模块1.jar,其中有控制器类

@RestController
@RequestMapping(value = "/epn",produces = "application/json")
public class EPNController
{
}

还有其他具有控制器类的jar。

问题在于EPNController bean和1.jar中的所有其他bean没有调用postProcessAfterInitialization。但是我可以看到,从其他jars到2.jar的控制器类中都有回调。

出于故障排除的目的,我将RBACCheckingBeanPostProcessor的模式设置为1.jar,现在我可以看到EPNController bean的回调。

我不明白如果我在2.jar中安装了BeanPostProcessor,那可能是什么问题。

解决方法

我可以解决问题。问题出在@Configuration类。 1.jar和2.jar都具有@Configuration类。我必须从1.jar的@Configuration类中的2.jar导入@Configuration类。 现在,我可以看到BeanPostProcessor方法也被在1.jar中创建的bean调用。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...