Spring注释创建一个jexl2.Expression

时间:2018-03-01 10:41:04

标签: java spring dependency-injection jexl

我正在尝试理解我需要适应的一段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对象注入。这是如何工作的?

1 个答案:

答案 0 :(得分: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注释注入表达式字符串。