首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用@方面和@条件

使用@方面和@条件
EN

Stack Overflow用户
提问于 2017-02-14 11:52:36
回答 1查看 3K关注 0票数 1

我希望根据从属性文件读取的值有条件地创建Aspect。(这与特征分析有关,这就是为什么计划中的选择性使用)。

我尝试创建一个实现条件的类,从而创建一个matches()方法,该方法允许我执行必要的验证,并将输出设置为相应的Boolean,启用或禁用它。

代码语言:javascript
复制
@Aspect 
@Conditional(MyCondition.class)
public class MyAspect {
...
pointCuts, methods and etc...
...
}

问题是:Aspect无论如何都是由Spring实例化的,显然它不尊重@Conditional注释输出。

我在这里错过了什么警告吗?

版本:

代码语言:javascript
复制
Spring version: 4.1.4.RELEASE

AspectJ version: 1.7.3

(项目依赖树有点“复杂”,因此更新库必须用少量的盐分:)

EN

回答 1

Stack Overflow用户

发布于 2017-02-14 12:46:37

如果您将方面注册为组件(如Aspect Behaviour配置中所述),您可以设法获得一个有条件的@EnableAspectJAutoProxy

从医生那里:

启用对处理标记为AspectJ的@方面注释的组件的支持,类似于Spring的XML元素中的功能。用于@配置 请注意,@方面bean可能是组件--与任何其他一样被扫描。只需将方面标记为@方面和@组件:

因此,您的问题应该通过在bean中添加@Component并在需要时设置适当的组件扫描来解决。

例如:

代码语言:javascript
复制
@Aspect
@Component 
@Conditional(MyCondition.class)
public class MyAspect {
...
pointCuts, methods and etc...
...
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42225463

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档