已经为编译时编织以及per添加了aop.xml支持 https://bugs.eclipse.org/bugs/show_bug.cgi?id=124460
即便如此 提到 增强 仍然没有实现,他们提供了一种简单的方法来明确指定在编译时编织的方面。就我而言,我正在使用spring-aspects来编织 AnnotationBeanConfigurerAspect 支持 @Configurable 注释,问题在于编织 所有 在spring-aspects.jar中找到的方面( @Transactional 支持,JPA异常翻译等等)这不是我想要的(至少我想控制它)。基于 这个 发布,我使用以下解决方案:
AnnotationBeanConfigurerAspect
@Configurable
@Transactional
<iajc destDir="${module.bin.dir}" showWeaveInfo="true" > <inpath> <pathelement location="${module.bin.dir}" /> </inpath> <classpath> <path refid="module.classpath" /> </classpath> <aspectpath refid="module.classpath" /> <inxml> <!-- this is the important part --> <fileset dir="${module.src.dir}"> <include name="aop-ctw.xml"/> </fileset> </inxml> </iajc>
同 aop-ctw.xml 驻留在源目录中:
aop-ctw.xml
<?xml version="1.0"?> <aspectj> <aspect name="org.springframework.beans.factory.aspectj.AnnotationBeanConfigurerAspect"/> <!-- Now, I don't want these: <aspect name="org.springframework.transaction.aspectj.AnnotationTransactionAspect"/> <aspect name="org.springframework.orm.jpa.aspectj.JpaExceptionTranslatorAspect"/> --> </aspectj>
如果 aop-ctw.xml 找不到, iajc 符合标准行为:所有可用的方面都是编织的。
iajc