繁体   English   中英

未创建Spring AspectJ切入点

[英]Spring AspectJ pointcut not created

我有一个Spring Web应用程序,其中正在尝试使用AspectJ执行一些日志记录。

我在配置类上启用了@EnableAspectJAutoProxy并声明了我的方面:

@Aspect
@Component
public class LoggerAspect {

然后,我在定义到库中的类的方法上放置了一个切入点(当然,这是作为依赖项运送到战争中的),在主项目的类上放置了另一个切入点(运送到战争中的一个)。

在运行单元测试时,一切正常,我得到了我的建议。

如果我将我的应用程序部署在tomcat 7上,则仅会调用放置在jar中包含的类上的建议,而另一个(部署到WEB-INF / classes中)将被忽略。

从日志中,我看不到任何奇怪之处,这是因为没有为位于WEB-INF中的类创建AopProxy(这与不调用建议的事实是一致的)。

我想念什么?

谢谢。

得到它了。

问题在于,在正常运行期间,方面是在应该遵循的类之前被自动发现的。

实际上,我在WebAppInitializer中具有以下功能:

@Override
protected Class<?>[] getRootConfigClasses() {
return new Class<?>[] { CoreConfig.class, LibConfig.class };
}

@Override
protected Class<?>[] getServletConfigClasses() {
return new Class<?>[] { WebConfig.class};
}

LibConfig是在库中自动发现服务的一个(方面一直在工作的那个)。 CoreConfig是发现方面的一种。 WebConfig是自动发现我要拦截的另一个类的一个。

因此,在启动时,方面已在WebConfig中的类可用之前初始化,因此它无法放置Pointcut。 在测试期间,所有类都一起加载,一切都很好。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM