Bean 引用
如果评估上下文已配置 bean 解析器,你可以使用 @ 符号从表达式中查找 bean。
下例展示了如何做到这一点:
-
Java
ExpressionParser parser = new SpelExpressionParser();
StandardEvaluationContext context = new StandardEvaluationContext();
context.setBeanResolver(new MyBeanResolver());
// 这最终将在评估期间调用 MyBeanResolver 上的 resolve(context,"something")
Object bean = parser.parseExpression("@something").getValue(context);
要访问工厂 bean 本身,你应该改为在 bean 名称前加上 & 符号。
下例展示了如何做到这一点:
-
Java
ExpressionParser parser = new SpelExpressionParser();
StandardEvaluationContext context = new StandardEvaluationContext();
context.setBeanResolver(new MyBeanResolver());
// 这最终将在评估期间调用 MyBeanResolver 上的 resolve(context,"&foo")
Object bean = parser.parseExpression("&foo").getValue(context);