有时在装载时间编织期间不会编织类

时间:2018-01-18 17:56:55

标签: java spring hibernate aop aspectj

我有一些用@Autowired字段标记@Configurable注释的类,其中一些工作正常,但由于字段未正确获取@Autowired,因此抛出NullPointerException。

我的配置就像这样

@Configuration
@EnableSpringConfigured
@EnableLoadTimeWeaving(aspectjWeaving = AspectJWeaving.ENABLED)
@EnableAsync(mode = AdviceMode.PROXY, proxyTargetClass = true)
@Import({
    ...
})
@ComponentScan(
    basePackageClasses = {
        ...
    }
)
public class RootConfig implements AsyncConfigurer {

aop.xml文件:

<!DOCTYPE aspectj PUBLIC "-//AspectJ//DTD//EN" "http://www.eclipse.org/aspectj/dtd/aspectj.dtd">
<aspectj>
    <weaver>
        <!-- only weave classes in our application-specific packages -->
        <include within="aero.geoscan..*"/>
    </weaver>
</aspectj>

1 个答案:

答案 0 :(得分:1)

Spring最近可能会加载weaver bean,因此不会处理所有必需的类。 尝试将@DependsOn("loadTimeWeaver")添加到@Configuration。

如果没有帮助将<weaver options="-verbose -debug -showWeaveInfo">添加到您的aop.xml中。通过提供额外的日志来帮助解决问题