Avalie programaticamente uma expressão de bean com o Spring Expression Language
Eu tenho um simples Spring Bean Expression, que avalia bem quando eu defini-lo dentro de um arquivo de contexto do aplicativo:
<bean id="myConfigBean" class="com.example.myBeanConfigBean">
<property name="myProperty" value="#{ someOtherBean.getData() }"/>
</bean>
Agora, quero fazer a mesma avaliação programaticamente. Eu usei o seguinte código:
final ExpressionParser parser = new SpelExpressionParser();
final TemplateParserContext templateContext = new TemplateParserContext();
Expression expression = parser.parseExpression("#{ someOtherBean.getData() }", templateContext);
final String value = (String) expression.getValue();
Isso lança uma exceção:
EL1007E:(pos 22): Field or property 'someOtherBean' cannot be found on null
Eu acho que tenho que definir um objeto raiz de alguma forma que permite aos beans configurados como uma propriedade. Mas eu não consegui que funcionasse ainda. Alguém, quem já fez isso e poderia dar uma dica?