关于mybatis-plus中的service注解注解位置的解释

你们有没有想过:为什么mybatis-plus的@service注解是注解在service接口上,而不是我们的serviceImpl上,明明我们的具体实现是实现在impl上,但为啥不是impl实现类上使用@service。而且我们的注入依赖为什么是注入接口。而不是实现类。

经过我查阅大量资料后才晓得:
在Spring中,使用@Service注解标记的类通常表示业务逻辑层的组件。在MyBatis-Plus中,为了实现简单的CRUD操作,可以使用IService接口提供基本的增删改查操作。IService是一个标记接口,没有任何实现,只是为了定义通用的方法签名。

MyBatis-Plus提供了IService接口的一个默认实现类ServiceImpl,该类实现了IService接口中定义的通用方法。因此,在使用MyBatis-Plus时,我们可以将@Service注解标记在IService的子接口上,即自定义的业务逻辑接口上,以表明该接口是一个业务逻辑层的组件。

为了将接口注入到Spring容器中,需要使用Spring的依赖注入机制。Spring会查找所有被@Service注解标记的类,并将其实例化为Spring Bean,并将其注入到其他组件中。

在MyBatis-Plus中,@Autowired注解通常注解在业务逻辑接口上,以将该接口的实现类注入到其他组件中因为@Autowired默认按照类型注入,即查找与被注入的接口类型相同的实现类,因此在注入时会自动注入ServiceImpl类的实例,而不是IService的实例。这样,我们就可以使用@Autowired注解将MyBatis-Plus提供的基本增删改查方法注入到我们的业务逻辑组件中,从而简化开发。

有时候我们注入接口的时候,会爆红,此时我们应该使用由JDK提供的@Resource注解进行注入。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值