【摘要】 spring学习5(1) 在经过了对spring框架基本开发的了解以及对spring boot流程的学习,《精通spring4.x…》这本书正式开始了spring的讲解,我也跟随着这本书的脚步进行学习。 IoC概...
spring学习5(1)
在经过了对spring框架基本开发的了解以及对spring boot流程的学习,《精通spring4.x…》这本书正式开始了spring的讲解,我也跟随着这本书的脚步进行学习。
IoC概述
首先需要学习的是spring的IoC技术,IoC全称是Inverse of Control,是spring容器的内核。
IoC的基本意义
即是将一个接口具体实现类的控制权从调用的类中移除,交给第三方来控制。如果从电影剧本的角度即是说,演员,剧本,角色的对应由导演来控制。在spring中就是spring容器借用Bean配置来进行控制。
后来由于这个概念不够直观引入了DI(Dependency Injection)依赖注入的概念,即是说调用类对某一接口实现类的依赖关系由第三方注入。
IoC的类型
IoC可以划分为三种类型:构造函数注入,属性注入,接口注入。Spring支持构造函数注入和属性注入。
构造函数注入
通过调用类的构造函数,将接口类通过构造函数给出。
用电影的例子就是,导演分配角色的演员,而后在剧本的构造函数中将这个演员注入。
属性注入
通过调用类的函数,将接口类通过函数给出。
用电影的例子就是不是这个角色在所有的场景都需要,所以这时候可以通过setter方法来注入演员。
接口注入
将调用类所有依赖注入的方法抽取到一个接口中,调用类通过实现该接口的注入方法来达成注入。
通过容器完成依赖关系的注入
虽然如同上述一般操作后,调用类之间完成了解耦,然而这些代码在第三个类中依然存在。就好像导演要控制其他两个类,如果这时候有个第三方的代理机构只是让导演,剧本,演员各司其职,那么三个类都完成了解耦。那么spring就是这样一个容器,通过new XmlBeanFactory)就可以启动容器并且完成装配。
JAVA反射机制
java语序通过程序化的方式间接对Class进行操作。
概念
可以通过一例子来说明