跳到主要内容

Bean 引用

DeepSeek V3 中英对照 Bean References

如果评估上下文已配置了 bean 解析器,你可以通过在表达式前加上 @ 符号来查找 bean。以下示例展示了如何进行操作:

ExpressionParser parser = new SpelExpressionParser();
StandardEvaluationContext context = new StandardEvaluationContext();
context.setBeanResolver(new MyBeanResolver());

// This will end up calling resolve(context, "someBean") on MyBeanResolver
// during evaluation.
Object bean = parser.parseExpression("@someBean").getValue(context);
java
备注

如果 bean 名称包含点号(.)或其他特殊字符,你必须将 bean 的名称作为字符串字面量提供——例如,@'order.service'

要访问工厂 bean 本身,你应该在 bean 名称前加上 & 符号。以下示例展示了如何操作:

ExpressionParser parser = new SpelExpressionParser();
StandardEvaluationContext context = new StandardEvaluationContext();
context.setBeanResolver(new MyBeanResolver());

// This will end up calling resolve(context, "&someFactoryBean") on
// MyBeanResolver during evaluation.
Object factoryBean = parser.parseExpression("&someFactoryBean").getValue(context);
java