Программная оценка выражения bean-компонента с помощью Spring Expression Language

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

11
задан Jack 23 July 2012 в 16:10
поделиться