侧边栏壁纸
博主头像
帮主の后花园博主等级

欢迎光临,开开心心每一天

  • 累计撰写 21 篇文章
  • 累计创建 5 个标签
  • 累计收到 3 条评论

目 录CONTENT

文章目录

Spring注解 @Qualifier 的用法

Gxbalun
2022-03-10 / 0 评论 / 1 点赞 / 501 阅读 / 1196 字

Spring注解 @Qualifier 的用法

在 Controller 中需要注入 service。但是如果这个 service 有两个或多个实现类时,应该如何区分这两个 impl 呢?

例:

下面是 userService 的两个实现类:userService1 和 userService2。

@Service("userService1")
public class userService1 implements userService {

    @Override
    public boolean login() {
        return false;
    }
}
@Service("userService2")
public class userService2 implements userService {

    @Override
    public boolean login() {
        return false;
    }
}

在 Controller 中自动注入时,可以添加 @Qualifier 注解来区分它们:

@Controller
public class userController {

    @Autowired
    @Qualifier("userService1")
    userService userService;
    
}

通过 Qualifier(意思是“合格者”)这个标示,表明了那个实现类才是我们所需要的。

添加该注解,要注意注解的参数名称必须为之前定义的 @Service 注解的名称之一。

注:使用 @Resource 注解时,不再需要使用 @Qualifier 注解,使用其自带的 “name” 就行:

@Controller
public class userController {

    @Resource(name = "userService1")
    userService userService;
    
}
1

评论区