@Qualifier 注解作用于形参上的作用是用来指定注入的具体实现类的名称。 在 Spring Boot 中,当一个接口有多个实现类时,使用 @Autowired 注解进行自动注入时会出现无法确定具体实现类的问题。这时可以使用 @Qualifier 注解配合 @Autowired 注解来指定具体的实现类。

示例代码如下:

public interface UserService {
    void addUser();
}

@Service
public class UserServiceImpl1 implements UserService {
    @Override
    public void addUser() {
        System.out.println("添加用户1");
    }
}

@Service
public class UserServiceImpl2 implements UserService {
    @Override
    public void addUser() {
        System.out.println("添加用户2");
    }
}

@Controller
public class UserController {
    private final UserService userService;

    @Autowired
    public UserController(@Qualifier("userServiceImpl2") UserService userService) {
        this.userService = userService;
    }

    // ...
}

在上述代码中,UserController 类的构造方法上使用了 @Autowired 和 @Qualifier 注解。@Autowired 注解用来自动注入 UserService 类型的实例,而 @Qualifier 注解则用来指定具体的实现类的名称,这里指定了 "userServiceImpl2"。这样,当 UserController 类被实例化时,Spring Boot 就会自动将 UserServiceImpl2 类的实例注入到 userService 字段中

springBoot Qualifier 注解作用于形参上

原文地址: https://www.cveoy.top/t/topic/iHe3 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录