当前位置: 代码迷 >> 综合 >> springIoC原理相关学习
  详细解决方案

springIoC原理相关学习

热度:70   发布时间:2023-10-11 05:41:48.0
springIoC原理相关学习

1.springIoC:

       是指在一个对象在使用另一个对象的功能时,也就是一个对象对另一个对象产生依赖时,依赖对象的创建不是由当前对象生产,而是由spring容器生产,然后进行DI,也就是说控制创建和生产依赖对象权力进行了反转,这就是控制反转

2.Ioc和DI

DI依赖注入其实和IoC表达了不同层面同样的意思,IoC表达的是依赖对象的创建不是由自己生产,而是由spring容器生产,DI表达的是依赖对象是由IoC容器进行的注入,都表达了对象之间的依赖配置关系是由容器所控制)

3.IoC和JNDI与new一个对象是完全相反的:

       JNDI和new一个对象是由一个对象主动去生产另一个对象来使用,对象与对象直接的耦合关系还是存在,而IoC是由spring容器进行对象的创建与装配,所以对象与对象之间的耦合关系减小,这些对象之间的装配都是由spring容器自动完成,所以不是一个对象生产另一个对象,而是一个对象使用另一个对象
       JNDI和new一个对象相比较,是可以通过修改配置文件而改变对象的属性值或者改变对象的实现,不用改变具体代码,但是依然需要一个对象主动去生产所需要的对象
       IoC和JNDI相比较,是IoC可以通过使用spring容器直接生产对象以及进行注入,对象的生产不是在另一个对象中,而是都在容器中,最后按照需要进行注入

4.spring中bean的生产:

       spring容器之中的bean是由Java反射机制生产的,通过获取配置文件中的配置信息,JVM可以对相关.class文件进行加载,然后产生一个特定类的Class对象(所有这个类的对象使用同一个Class对象),然后通过使用Class对象的getConstructor或getMethod等方法获取类的构造方法和其他方法,然后可以进行实例化最后就可以生产bean,并且进行bean的装配

5.Java反射机制(spring使用反射进行bean创建):

spring中通过读取配置文件信息使用java反射机制进行bean的创建
java反射机制简要来说就是把 一个类的内容给参数化
比如我可以通过一个类的方法名的字符串去当做参数:

Method method = getMethod("方法名",参数...)
method.invoke(参数...)
  相关解决方案