使用 Spring 表达式语言以编程方式计算 Bean 表达式
我有一个简单的Spring Bean表达式,当我在应用程序上下文文件中定义它时,它的计算结果很好:
<bean id="myConfigBean" class="com.example.myBeanConfigBean">
<property name="myProperty" value="#{ someOtherBean.getData() }"/>
</bean>
现在,我想以编程方式进行相同的评估。我使用了以下代码:
final ExpressionParser parser = new SpelExpressionParser();
final TemplateParserContext templateContext = new TemplateParserContext();
Expression expression = parser.parseExpression("#{ someOtherBean.getData() }", templateContext);
final String value = (String) expression.getValue();
这将引发异常:
EL1007E:(pos 22): Field or property 'someOtherBean' cannot be found on null
我想我必须以某种方式设置一个根对象,允许像属性一样配置bean。但我还没有让它工作。任何人,谁已经这样做了,可以给出一个提示?