expected single matching bean but found 2: busiCarMapper,sysUserMapper------SSM项目BaseMapper的问题

10 篇文章 0 订阅

SSM项目中,我将复用性较高的方法封装了一个BaseMapper接口,其他所有Mapper接口继承于它,于是引发了一个问题

错误代码太多,只贴出来主要的一行:
expected single matching bean but found 2: busiCarMapper,sysUserMapper

翻译结果为:期望单匹配bean,但发现2:busiCarMapper,sysUserMapper

busiCarMapper,sysUserMapper是继承BaseMapper的两个子接口,

排查问题时方向搞错了,一直在检查serviceimpl层和配置文件,最终发现原来是BaseServiceImpl的问题

public class BaseServiceImpl<F, V> implements IBaseService<F, V> {
	@Autowired
	BaseMapper<F, V> baseMapper;
	
	public BaseServiceImpl(BaseMapper<F, V> baseMapper) {
		this.baseMapper = baseMapper;
	}
}

把此处的@Autowired注解去掉就好了,此处的baseMapper对象是通过子类调用父类构造方法传入的,完全不需要@Autowired。有多个子类时,@Autowired会引起上述bug,因为它在注入时不知道调用哪个子类

希望能对人有帮助。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值