java只能注入一个bean?
时间: 2024-02-18 20:01:09 浏览: 114
Java 并没有限制只能注入一个 Bean。在 Spring 中,如果存在多个类型相同的 Bean,可以通过使用 `@Qualifier` 注解或者使用 `@Primary` 注解来指定要注入的 Bean。
`@Qualifier` 注解可以和 `@Autowired` 或 `@Resource` 一起使用,表示需要注入指定名称的 Bean,例如:
```java
@Component
public class MyService {
@Autowired
@Qualifier("foo")
private Foo foo;
}
```
`@Primary` 注解可以在多个 Bean 中指定一个首选的 Bean,例如:
```java
@Component
@Primary
public class FooImpl1 implements Foo {
// ...
}
@Component
public class FooImpl2 implements Foo {
// ...
}
```
这样在注入 `Foo` 类型的 Bean 时,如果没有指定具体的 Bean 名称或者 `@Qualifier`,则会优先选择带有 `@Primary` 注解的 `FooImpl1`。
阅读全文