学习Spring框架笔记之基于xml的IOC配置

来源:互联网 发布:淘宝有限额吗 编辑:程序博客网 时间:2024/05/19 02:24
(一)、Spring的IOC核心
IOC:控制反转,有依赖注入和依赖查找两种类型,但是此时只用掌握依赖注入就行了。
IOC思想解耦合,是通过一个工厂类来实现的,这个工厂类能够解析指定位置的xml文件,通过反射创建出xml文件中配置了需要实例化的对象,然后就将对象放入Spring框架的核心容器之中。
而这个工厂类已经在Spring框架的jar包之中,所以我们要编写就是xml配置文件,因为这个是不固定的,需要根据实际情况让开发者自己编写的。

基于xml配置文件的IOC:
一般Spring框架的xml是默认放在根目录下的规范命名是bean.xml(当然也可是其他的名称,只要在创建的容器的是时候得参数向对应便行)
bean.xml的编写要求:
1.导入所需标签时要的约束(对象导入bean,扫描注解context,面向切面aop,事务管理器配置tx等)
2.bean标签:这是一个Spring框架创建对象时需要用上,代表的是在容器中创建出一个实力化对象.
id属性:唯一标识,在java代码便是通过这个属性的值去出对应的对象地址.
class属性:全限定类名,Spring通过读取到这个全限定类名反射创建出一个实例化对象放入容器中,
scope属性:bean的作用范围,singleton默认值:单例;prototype:多例;request:request域;session:session域;globeSession:应用在Portlet环境才有;
init-method:初始化方法;destroy-method:销毁时的方法.
实例化bean的三种方式:(1).直接用已有的属性,id,class,scope实现;
(2).如果静态工厂创建:需要创建出一个工厂类,其中提供一个人静态方法,返回值便是一个实例化对象,而在xml中体现就是class是工厂的全限定类名,
但是需要加上factory-method属性:值是工厂中返回对象的静态方法.
(3).也是通过工厂类的方式,但是这时候不需要创建静态方法,成员方法也行,但是这时候就需要也在容器中实例化出工厂的对象,然后在返回的对象bean
中添加factory-bean属性指向工厂bean的id,factory-method属性指向返回值是该实例化对象的方法.
这三种方式中,第一种比较节省资源.
关于bean的依赖注入,有两种方式,这是Spring框架可以帮助我们实现的,在创建好好对象的基础上再次调用对象的方法注入成员属性.
constructor-arg标签:这是bean标签的子标签,表示用的是构造方法的注入方式,所以就要求在实体类中必须要有对应的构造方法.没加这个标签时,bean标签
创建对象默认调用无参构造.当有参数时,该标签提供
index属性:指定参数在构造函数中参数列表索引位置,
type属性:指定参数的数据类型
name属性:指定参数在构造函数中的名称,
value属性:它指定的是给参数赋予的值,只能赋予基本数据类型和String类型,
ref属性:表示引用,能够赋予其他的bean类型,但是却只能从容器中已经存在的.
一般也是用name,value和ref二选一.
property标签:也是bean的子标签,用的是类中定义的set方法注入的.(还有一个p名称空间的注入了,本质还是set注入,只是当做bean标签的属性配置的)
该标签的属性有:
name属性:是指set方法后面的部分;
value属性:给属性赋予的基本数据类型或者String类型
ref属性:引用其他的bean类型
注入集合属性的数据
只要集合的结构相似,标签是可以互换的
单例:list,array,set等集合
name属性:表示集合名
array标签,set标签,list标签包含子标签value,然后在value标签题中放入要注入的值.
双例:map集合,properties集合等
name属性:表示集合名
map标签,props标签后包含了子标签entry标签或者prop标签中key属性表示集合中的键,value属性或value标签中对应的是值.
阅读全文
0 0
原创粉丝点击