内容正文:
第7章使用Spring管理Bean
·IOC和DI
·Bean的配置
·注解
7.1IOC和D1
7.1.1
简介
目录
Contents
7.1.2
依赖注入的方式
初心至善匠心育人
7.1IOC和DI
7.1.1简介
·IOC是Inversion Of Control(控制反转)的缩写,它是一种设计思想,是指将对
象的控制权由程序代码反转给外部容器。
。
在Spring中,控制反转是实现Spring容器的指导思想。有了Spring容器,开发人
员无需编写管理对象生命周期和依赖关系的代码,此项工作将由Spring容器根据
配置自动完成,如此一来,对象的控制权由程序代码反转给Spring容器。
·Dl是Dependency Injection(依赖注入)的缩写,它是控制反转的另一种说法,
同时也为控制反转提供了实现方法。依赖注入是指调用类对其他类的依赖关系由
容器注入,这就避免了调用类对其他类的过度依赖,降低了类与类之间的耦合。
7,1I0C和DI
7.1.1简介
·接下来以一个实例来说明依赖注入。现
有一个学生类和一个图书类,学生类对
图书类存在有依赖关系,如图所示。
·如果需要在学生类中调用图书类实现功能,按照原始的做法,在学生类中使用
new关键字创建一个图书类的对象,然后再调用图书类的对象完成下一步操作。
但是,在实际开发中,这种做法会导致调用者与被依赖者的硬编码耦合,各个类
之间的职责不明显,对项目后期的升级维护非常不利,因而不建议采用该方法。
·此时如果引入Spring框架并采用依赖注入的做法,那么上述问题可以被避免。使
用依赖注入的做法后,学生类无需主动创建图书类对象,只需被动等待Spring容
器注入即可,Spring容器如此一来,学生类和图书类之间高度解耦,程序的可扩
展性增强。
7.11OC和DI
7.1.2依赖注入的方式
·依赖注入有三种方式,他们分别是构造器注入、属性注入和接口注入,其中,构
造器注入和属性注入是Spring常用的方式,接下来对两种注入方式作详细讲解。
·1.构造器注入
·构造器注入指的是在被注入的类中声明一个构造方法,而构造方法可以是有参或
无参的。Spring在读取配置信息后,会通过反射方式调用构造方法,如果是有参
构造方法,可以在构造方法中传入所需的参数值,进而创建类对象。
·接下来通过一个实例演示构造器注入,具体步骤如下。
(1)在Eclipser中新建Web工程chapter07,将Spring核心容器的ar包和Spring
依赖的commons-.logging的)ar包导入到工程chaptert07的lib目录下,由于第6章
相应章节中已给出相关Jr包,此处不再赘述。
7.1IOC和D1
7.1.2依赖注入的方式
·(2)在工程chapter(07的src目录下新建包com.qfedu.bean,在该包下新建类
Student,如书中例7-1所示。
·在以上代码中,Student类提供了有参构造方法和toString()方法,当Spring通过
构造器注入相应的值以后,通过toString0方法可以获取这些注入的值。
·(3)在工程chapter(07的src目录下新建配置文件applicationContext.xml,
Spring通过该文件获取Bean的配置信息,如书中例7-2所示。
·在以上代码中,<constructor-arg>元素用于给类构造方法的参数注入值,
Spring通过构造器注入获取这些值,最终这些值将会赋给Spring创建的
Student>对象。
,(4)在工程chaptert07的src目录下新建com.qfedu.test包,在该包下新建测
试类TestSpring01,如书中例7-3所示。
7.1IOC和D1
7.1.2依赖注入的方式
·2.属性注入
·属性注入是Spring中最主流的注入方法,这种注入方法简单、直观,它是在被注
入的类中声明一个Set方法,并通过该Set方法的参数注入对应的值。
7.2Bean的配置
7.2.1
Bean的定义
7.2.2
注入集合
7.2.3
注入其他Bean
目录
Contents
7.2.4
使用P:命名空间注入
7.2.5
使用SpEI注入
7.2.6
Bean的作用域
7.2.7
Bean的生命周期
初心至善匠心育人
7.2Bean的配置
7.2.1Bean的定义
·在本书前文的讲解中,通常使用XML文件来实现Bean的配置。XML配置文件的根
元素是<beans>,<beans>元素中有很多<bean>子元素,每个<bean>子元素
都定义了一个Bean,并且描述了该Bean应该被如何配置到Spring容器中。
·<bean>元素提供了一系列属性用于描述Bean的信息,其中常用的如表所示。
展性