DI注入和@Autowired

Spring的DI注入和@Autowired的区别和联系。
DI的注入 分为 构造器注入 或者 set方法注入
那么Autowired底层难道不依赖DI的注入的方式吗?今天看视频没有提到两者的联系。 为什么说Autowired 只按类型(byType)或者名字注入(byName)
可以详细解答下两者之间的关系和@Autowired的实现过程吗?

DI是一种理念,@Autowired 是DI的具体实现,这两个都不是一个概念。
原理你可以看看这个博客,但大概率看不懂。初学者只需要先了解自动注入的作用。
https://blog.csdn.net/Weixiaohuai/article/details/123005140

你好,@Autowire 实现的原理你可以用配置类的方式去理解。
他首先要求你这个类有提供set方法,然后通过反射的方式,拼接对应注解所在类的名字,比如注解下面是User类型变量,它就会将第一个字母小写,然后拼接set来调用。

这就是你说的按照type来匹配,另一种说按名字,是要通过@Qualifer 注解。

这个就比如你的@Service 或者 @Conpoment 都有一个属性 value,它的原理就是读取这个值,来选择 byname。

你可以验证的,你注解上后,在对应的方法输出信息,等你依赖注入后,这个方法就会自动被调用。

如果还有其他需要了解的,欢迎下面评论反馈。