我无法让 AspectJ 在我的主项目中对带有 @configurable 注释的类执行加载时间编织。没有设置任何字段,也没有触及任何设置器。
我不认为配置本身有问题,因为我已经提取了配置并在一个较小的沙箱项目上对其进行了测试。只是为了它,我会将它包含在这个问题中。
所以,我想知道:
- 在更大的项目中是否有任何东西可能会阻碍 Spring/AspectJ 检测到这个特定的类?
- 有什么方法可以检查 spring 是否知道问题中的类?
最后,我可以提取的任何代码(请原谅混淆):
从配置 XML:
<context:annotation-config />
<context:spring-configured />
<context:component-scan base-package="se.isydev" />
<context:component-scan base-package="se.istools" />
<aop:aspectj-autoproxy />
<context:load-time-weaver aspectj-weaving="on" />
<context:property-placeholder location="classpath:settings.properties" />
(...)
<bean class="com.company.ClassToBeWeaved"
scope="prototype">
<property name="injectedBean" ref="injectedBean" />
</bean>
和班级本身:
@Configurable
public class ClassToBeWeaved {
private InjectedBean injectedBean;
@Required
public void setInjectedBean() { ... }
}
编辑:
好吧,事实证明它由于循环依赖而无法正常工作。哦,天哪,我喜欢处理遗留代码。尽管如此,我最初的问题仍然存在。