@Autowired按类型查找的一些问题

文章讲述了作者在学习JAVAEE课程时遇到的困惑,关于@Autowired注解如何按类型查找注入,以及对Spring框架中@Service和@Repository注解的理解,最终认识到接口的实现类被视为接口类型进行查找。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近开学,我们专业开设了一门JAVA EE的课程,作为初学者,我学的比较吃力,因为以前的一些课我学的也不怎么样,当然这门课跟其他可也没有那么多的联系,之所以说这些只是表明一下自己初学者的身份,如果有错误,欢迎各位大佬指明!

@Autowired注解跟@Resource之间的区别联系,我这里没啥说的,有很多人都讲了,我比较费劲的是@Autowired注解的按照类型查找注入的方式

好比这样

我记得书上写的是默认生成的是类名的小写accountController对吧

但是如果像是下面这个图显示的那样那他容器中默认生成的是accountController还是所accountDao呢?

我在网上搜素了一下(不得不吐槽一下必应跟百度搜索结果相差还是挺大的)

后来找到这个

他的意思是容器获得的都是接口的实现类,然后我就觉得@Autowired会在容器里搜索UserService类型的实例,但是在上面这个截图中只有接口的实现类才被容器实例化了,而且代码没问题,我奇怪的只是为什么@Autowired根据UserService类型搜索,却反而能找到接口的实现类UserServiceImple,难道说实现类的类型跟它所实现的接口类类型是一样的?还是说实现类存到容器中的实例默认名就是接口userService?

本来我都认为是后者了,直到我刷到了这位大哥的帖子

spring注解@Service,@Repository写在接口上还是接口的实现类上的有关测试_@service注解写在接口还是实现类-CSDN博客

容器根据AccountServiceImpl查找的时候查找到了实现类,证明后者的推测是错误的

然后我又刷到了另一位大哥的帖子

★spring@Autowired注解原理,通俗易懂(笔记)_autowired(request=false)_你在狗叫什么、的博客-CSDN博客

????我擦,搞错了,大哥举的例子是继承而不是接口,好吧

有没有哪位大佬指点指点我啊

spring MVC——Spring的@Autowired注解为什么用在接口上 (转载)_小白龙白龙马的博客-CSDN博客

有找到一位大哥的文章分享,有需要的小伙伴可以看看

欧克欧克,我好像找到具体解释了

看他最后一句话,是不是可以理解为接口的实现类可看作接口类,但接口类不能看做实现了,通了,这样解读的话一切都通了,爽

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值