- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我发现在调用factoryBean.getObject()之前不可能对bean进行后处理。 “resultingBean”是一些在开始时初始化的bean的依赖项,因此它首先被实例化。请参阅,在“MyFactoryBean”中构造“resultingBean”之前,我需要“myBeanPostProcessor”对“myBean”执行某些操作。惰性初始化和依赖都没有帮助。无论如何,“MyFactoryBean.getObject()”总是首先被调用。
<bean id="myBean" class="example.MyBean" />
<bean id="myBeanPostProcessor" class="example.MyBeanPostProcessor" />
<bean id="resultingBean" class="example.MyFactoryBean" depends-on="myBean"/>
知道如何处理这个问题吗?我故意选择 BeanPostProcessor 是因为这个要求应该处理在 junit @Before 方法之前设置 mocito 模拟...问题是在 @Before 方法中设置这些模拟为时已晚,因为您需要在上下文时使用它们初始化。
实现这一点的方法并不多,包括 ExecutionListeners、ContextLoaders、BeanFactoryPostprocessor、Runner 等等。
我正在使用springockito它会即时 mock 我的 bean 。
这是完美的 Spring 测试框架的一个小缺点。
最佳答案
我不太同意使用这样的模拟(即用于集成测试),但我理解你的问题。
您需要使用在InitializingBean和BeanPostProcessor之前调用的ApplicationContextAware接口(interface)。
但是,您的工厂将始终首先被调用,因此请考虑不同的选项,例如新的 java 风格的配置或重构(因为您似乎可能具有某种循环依赖性)
除了我需要更多信息之外。
关于java - 如何在factoryBean返回实例之前处理bean?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12449102/
我是一名优秀的程序员,十分优秀!