0
点赞
收藏
分享

微信扫一扫

day09-linux系统优化

魔都魅影梅杜萨 2024-07-25 阅读 27

前言:

        由于java的多态特性,往往一个接口有多种具体的实现,传统的做法是在一个实现类中新建不同方法。但这种做法既不符合OOP的思想,而且当每种实现逻辑都相对复杂的时候,会让我们的代码显得臃肿和凌乱,当我们只需要使用其中一种实现的时候,没有必要去关心其他实现,所以正确的做法应该是各自封装各自一体。

        当我们在spring中使用多个实现类实现同一个接口的时候,那么问题来了,我们怎么选择我们需要的实现。

一、通过依赖注入使用

1、@Autowired注解+@Qualifier注解

@Autowired按类型查找,找到多个会报错,如果没有指定required=false且找不到实现类的话也会报错。

用例:

public class UserController {
    @Autowired
    @Qualifier(value = "userServiceA")
    private UserService userService;
 
    public void execute() {
        userService.doSomething();
    }
}

@Autowired源码:

@Target({ElementType.CONSTRUCTOR, ElementType.METHOD, ElementType.PARAMETER, ElementType.FIELD, ElementType.ANNOTATION_TYPE})
@Retention(RetentionPolicy.RU
举报

相关推荐

linux基础day09

Day09

Day_09

day09---2.4

springCloud-day09

0 条评论