我正在尝试理解我需要适应的弹簧代码。
我有:
<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
现在,我试图找到合适的弹簧注释来摆脱XML文件。但是我什至无法理解如何将简单的字符串属性注入为jexl2.expression对象。这是如何工作的?
一个朋友找到答案:
有另一个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
注释。