SpringBoot中一个接口多个实现类,如何自由选择,这是一把《屠龙宝刀》

本文探讨了在SpringBoot中如何处理一个接口拥有多个实现类的情况,包括使用@Service指定bean名称、@Qualifier注解、@Resource注解以及@Primary注解来选择实现类。此外,还介绍了通过配置文件动态选择实现类的方法,提供了测试代码和执行结果分析。
摘要由CSDN通过智能技术生成

一个接口难免会有多个实现类,不同的实现类有各自的需求,如何在项目中实现根据不同项目,自由切换实现类呢?

废话不多说,直接上代码,文末有源码,直接测试

1.接口代码

package com.cj.interfaces;

public interface ITestService {
   
    void test();
}

2.实现类1,使用@Service,且其中指定bean的名字为“s1”

package com.cj.interfaces;
import org.springframework.stereotype.Service;

@Service("s1")
public class TestServiceImpl1 implements ITestService {
   
    @Override
    public void test() {
   
        System.out.println("接口1实现类 ...");
    }
}

3.实现类2,使用@Service,啥都不指定,使用默认

package com.cj.interfaces;

import org.springframework.stereotype.Service;

@Service
public class TestServiceImpl2 implements ITestService {
   
    @Override
    public void test() {
   
        System.out.println("接口2实现类 ...");
    }
}

4.实现类3,依旧使用@Service,同时指定bean的注入名称为“s3”

package com.cj.interfaces;

import org.springframework.stereotype.Service;

@Service("s3")
public class TestServiceImpl3</
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值