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);