如何对表达式进行 Spring aop 比较?

发布于 2024-12-15 03:29:02 字数 532 浏览 1 评论 0原文

我需要获取bean id logConfig 的属性名称logLvl 的值并在表达式上进行比较。

<bean id="logConfig"
    class="com.celfocus.ufe.base.logging.domains.LoggingConfiguration">
    <property name="logDetails" value="STANDARD" />
    <property name="logLvl" value="COMPLET" />
</bean>

<aop:config>
    <aop:aspect ref="ufeLogger">
        <aop:pointcut id="complete" expression="execution(* *.*(..)) and ($logConfig.logLvl=STANDARD)"  />

这段代码给出了一个非法的标识符字符=。我可以做什么来进行这项检查?

I need to get the value of the property name logLvl of bean id logConfig and make a comparison on expression.

<bean id="logConfig"
    class="com.celfocus.ufe.base.logging.domains.LoggingConfiguration">
    <property name="logDetails" value="STANDARD" />
    <property name="logLvl" value="COMPLET" />
</bean>

<aop:config>
    <aop:aspect ref="ufeLogger">
        <aop:pointcut id="complete" expression="execution(* *.*(..)) and ($logConfig.logLvl=STANDARD)"  />

This piece of code gives an illegal identifier character =. What can I do to make this check?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

落花浅忆 2024-12-22 03:29:02

我从未见过任何东西让我认为这是可能的——你们有文档演示在这样的切入点内使用表达式吗?如果有的话,您可以尝试使用 SpEL 转义 #{},但我对此表示怀疑。不过,如果它有效的话那就太酷了。

我的第一种方法是使用属性值作为方面以及日志配置的属性。

I've never seen anything making me think this would be possible--do you have documentation that demonstrates the use of expressions inside a pointcut like this? If anything, you could try using a SpEL escape #{}, but I'm skeptical. That'd be cool, though, if it worked.

My first approach would be to use the property value as a property on the aspect as well as the log config.

月棠 2024-12-22 03:29:02

您尝试过 == 吗?毕竟如果你要进行比较的话。

Did you try ==? If you're doing a comparison, after all.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文