Bean 名称中的“&”是什么意思?

What does the "&" mean in in a Bean Name?

我正在看一个 Spring Qualifier 注释如下:

@Autowired
@Qualifier("&fooStreamBuilder")
private FooFactoryBean fooFactoryBean;

我以前从未在这样的注释中看到过“&”。它是什么以及它有什么作用?

想通了。在最新的 spring 文档中:

To access a factory bean itself, the bean name should instead be prefixed with a (&) symbol.

这意味着什么:

  • 如果我省略“&”,我会得到一个由 工厂(Foo)。
  • 如果我使用“&”,我得到的是实际的引用 工厂(FooFactoryBean)。

参考:https://docs.spring.io/spring/docs/current/spring-framework-reference/core.html#expressions

如果一个 bean 是一个工厂 bean(一个创建 bean FooFactory implements FactoryBean 的 bean),工厂实例 bean 名称是 &foo 而 bean 名称是 foo.