Spring AOP - 排除特定方面?

时间:2010-12-09 17:22:20

标签: spring-aop

我正在使用Spring 3.0.5,并且想知道是否有可能以某种方式排除已经使用@Aspect构造型注释的加载方面类,但同时包括其他方面带注释的类?如果你去注释路线(我是)我似乎是一个全有或全无的东西我已经尝试过看了但是可以;但似乎找不到任何暗示这一点的东西。

这样做的原因是我有一个包含方面的中央核心库,但我可能不想在使用这个中央库创建的每个项目中包含这些方面。

感谢。

1 个答案:

答案 0 :(得分:1)

这是一个很长的答案......

如果您使用的是带有Spring AOP的AspectJ注释而不是AspectJ运行时或编译时编织,那么您很幸运。如果用@Component之类的东西注释,Spring只会选择带注释的@Aspect类。 Spring不认为@Aspect是组件扫描的候选者。如果您正在使用XML配置,只需从配置中删除该bean。

我建议不要使用会击中核心库的组件扫描。例如,如果您的应用是com.example.myapp1,而您的核心库是com.example.corelibrary。*请确保您的组件扫描仅查看com.example.myapp1而不是com.example。

由于这个原因,在应用程序的基本软件包之外进行组件扫描是安全的。使用bean的XML配置引入各个方面。