实现BeanFactoryAware以获得对bean工厂的引用;然后…
StandardevaluationContext context = new StandardevaluationContext();context.setBeanResolver(new BeanFactoryResolver(this.beanFactory));expression expression = parser.parseexpression("@someOtherBean.getData()"); // or "@someOtherBean.data"final String value = expression.getValue(context, String.class);编辑
要回答下面的评论。该
@触发器使用bean工厂解析器来访问一个bean;
另一种方法是将a添加
BeanexpressionContextAccessor到评估上下文中,并使用a
BeanexpressionContext作为评估的根对象…
final expressionParser parser = new SpelexpressionParser();StandardevaluationContext context = new StandardevaluationContext();context.setBeanResolver(new BeanFactoryResolver(beanFactory));context.addPropertyAccessor(new BeanexpressionContextAccessor());expression expression = parser.parseexpression("someOtherBean.getData()");BeanexpressionContext rootObject = new BeanexpressionContext(beanFactory, null);...String value = expression.getValue(context, rootObject, String.class);


