У меня есть простое выражение Spring Bean Expression, которое отлично оценивается, когда я определяю его внутри файла контекста приложения:
<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-компоненты как свойство. Но я еще не заставил его работать. Кто уже делал это и может подсказать?