0

我试图理解一段我需要适应的 Spring 代码。
我有:

<bean id="…" class="…">
  <property name="expr"
           value="teams.contains(member.team) and not empty(member.projects)" />
</bean>

对应的类有一个字段

private Expression expr; 

类型

org.apache.commons.jexl2.Expression

现在我正在尝试找到合适的 Spring 注释来摆脱 XML 文件。但我什至无法理解如何将一个简单的 String 属性作为 jexl2.Expression 对象注入。这是如何运作的?

4

1 回答 1

0

一位朋友找到了答案:

还有另一个 XML 文件:

<bean id="bean_for_ExprConverter" class="package.of.custom.ExpressionConverter">
  <constructor-arg ref="bean_for_JexlEngine"/>
</bean>

而且,在项目的属性中:

application.spring.converters = #{{\
  @'bean_for_ExprConverter'\
}}

因此,只要定义了转换器 bean,只需将表达式字符串注入@Value注释就足够了。

于 2018-03-02T10:51:42.530 回答