springboot @Qualifier 注入
时间: 2023-06-28 16:09:16 浏览: 121
在 Spring Boot 中,我们通常使用 `@Autowired` 注解来实现依赖注入。但是,当我们有多个实现类时,Spring 无法自动选择正确的实现类进行注入。这时,我们可以使用 `@Qualifier` 注解来指定要注入的具体实现类。
`@Qualifier` 注解可以用在字段、setter 方法、构造函数上,用于指定具体的实现类。例如:
```java
public interface UserService {
void save();
}
```
```java
@Service
@Qualifier("admin")
public class AdminUserService implements UserService {
@Override
public void save() {
System.out.println("保存管理员用户信息");
}
}
```
```java
@Service
@Qualifier("normal")
public class NormalUserService implements UserService {
@Override
public void save() {
System.out.println("保存普通用户信息");
}
}
```
在调用时,我们需要在 `@Autowired` 注解中加入 `@Qualifier` 注解,如下所示:
```java
@Controller
public class UserController {
@Autowired
@Qualifier("admin")
private UserService userService;
// ...
}
```
这样,Spring 就会自动注入 `AdminUserService` 实例。如果我们想注入 `NormalUserService` 实例,则需要修改 `@Qualifier` 的值为 "normal"。
阅读全文