spring 指定bean id 来加载相同类名 不同包路径的bean 并使用set方法注入

业务场景,数据源可能是mysql也可能是impala。在mapper接口层级方法都是一样的。所以抽象出来一个父接口,再分别用mysql包下面的一个mapper和一个impala包mapper接口分别继承它。注意这俩mapper的beanId要区分开。

使用:首先有两个bean在不同的包下面,但是这俩类名是一样的。

然后使用set注入,使用全局变量参数区分使用那种mapper实现。

1.mapper接口层:伪代码如下:

interface parentMapper{
    method1();
    methhod2();
}

//下面连个接口类名相同 但是所在的包不同
@Repository("mysqlMapper")
interface mapper extend parentMapper{
  }
@Repository("impalaMapper")
interface mapper extend parentMapper{
 }

service层实现:

public Service3{
//声明一个成员变量
Mapper mapperParent;
//使用set注入mappper
@Autowired
public void setmapper(@Qualifier("mysqlMapper") ParentMapper mysqlMapper,@Qualifier(impalaMapper) ParentMapper impalaMapper){
if(){
mapperParent=mysqlMapper
}else{
mapperParent=impalaMapper
}
}
}

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

老马识途2.0

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值