上篇博客有简单的提了一下,IOC是一种思想,DI 是实现这种思想的一种方式。那么这一片博客就简单说一下什么是依赖注入,依赖注入的三种方式以及什么是bean。
依赖注入
在spring官网也有介绍说是构造方法注入 ,set方法注入
构造方法注入官网实例
set方法注入官网实例:不过,这种方式是基于 xml编程的
set方法注入基于javaconfig的是。。。
然而,我平时用的最多的却时@Autowire(自动装配)。然而他的底层应该是 field.set() 反射方法注入 为什么呢。。。下表也是查找bean的方式。
一般来说 我们会使用byName 和 byType 两种方法找到 bean,通过构造方法或者setter方法或者反射(field.set(), 在属性上加@Autowired 就是使用了这种方法,在set方法加@Autowired 和在 属性上加 底层是不一样的。)填充属性。
什么是bean,什么是beanDefinition?
这个其实可以简单的理解为spring容器管理的类,就是bean。那么beanDefinition又是什么呢。。。也可以简单的理解为它是用来描述bean的,举个栗子:汽车就好比是bean 汽车有四个轮子,汽车是红色的。。。这就是beanDefinition
然而在beanDefinition中体现出的却时例如 bean的scop、isLazyInit、isPrimary等等
最后呢想说一下,有想写一下bean的初始化过程。bean的生命周期。如何注册bean,如何插手bean的生成,AOP,spring的注解、spring mvc spring security mybatis spring boot spring cloud ,zookeeper dobbo。。。。。感觉好多啊,简单的说一下容易,但是根据源码什么的写就很麻烦了。以后慢慢写吧…… 对了 github上已经上传了源码 还有 几个小demo 还有源码的一部分注解,以后会慢慢完善 https://github.com/yuehui1124/spring5.x_learn.git