天天看点

Spring Ioc学习(一)

包含内容:什么是ioc,作用,bean的创建,方式,配置,集合,作用域,不同作用与的bean依赖等

ioc控制反转(inversion of control) 也被叫作di依赖注入(dependency injection).在程序设计中经常使用到组合的形式,就是在一个类中使用到其他类的对象。ioc就是用来当这个类实例化时,它里面所使用到的相关对象也会被实例化。实例化的方式有①构造器参数②方法参数③属性。

spring容器启动是通过beanfactory或applicationcontext读取配置文件,该配置文件基本配置如下:

Spring Ioc学习(一)

实例化容器方法:

service.xml代码如下:

Spring Ioc学习(一)

daos.xml代码如下:

Spring Ioc学习(一)

由配置文件可知petstroreserviceimpl有两个成员变量sqlmapaccountdao和sqlmapitemdao

这样在创建petstroreserviceimpl时,spring ioc也会实例化另外两个实例变量。

可以通过import属性,将配置文件分开,便于管理。

Spring Ioc学习(一)

注意文件的位置,service.xml使用的相对路径必须在当前目录下有service.xml文件.对于messagesource.xml和themesource.xml必须在resources下,前面的斜杠可以带可以不带,但一般不建议有。

容器使用:

Spring Ioc学习(一)

配置文件中,每个<bean>都是一个beandefinition 对象,对于bean的定义有一下属性:

Spring Ioc学习(一)

对bean的实例化:

1.最最基本的配置:

Spring Ioc学习(一)

2.通过静态工场方法:

Spring Ioc学习(一)

3.通过实体工场方法:

Spring Ioc学习(一)
Spring Ioc学习(一)

依赖注入:

Spring Ioc学习(一)

由上可知:依赖注入可以通过三种方式进行1.构造器参数;2工厂方法参数;3属性注入。

Spring Ioc学习(一)
Spring Ioc学习(一)
Spring Ioc学习(一)
Spring Ioc学习(一)
Spring Ioc学习(一)
Spring Ioc学习(一)
Spring Ioc学习(一)
Spring Ioc学习(一)
Spring Ioc学习(一)
Spring Ioc学习(一)
Spring Ioc学习(一)
Spring Ioc学习(一)
Spring Ioc学习(一)
Spring Ioc学习(一)
Spring Ioc学习(一)
Spring Ioc学习(一)
Spring Ioc学习(一)
Spring Ioc学习(一)
Spring Ioc学习(一)
Spring Ioc学习(一)
Spring Ioc学习(一)

通过方法注入。大多数应用场景中我们使用到的bean是单例的,但是存在一种情况,就是一个单例的类中含有某个非单例的成员变量。

Spring Ioc学习(一)

bean的作用域:

Spring Ioc学习(一)

当定义一个bean的作用域定义为singleton时,spirng ioc容器会创建一个实例放入缓存中,对于所有的请求将都会返回缓存中的这个bean。且spring默认bean为单例。

Spring Ioc学习(一)

prototype作用域:

Spring Ioc学习(一)

spirng容器不管理prototype bean的整个生命周期。

Spring Ioc学习(一)

在一个单例的bean里面拥有prototype-bean:

Spring Ioc学习(一)

request,session,global session三个作用域是结合web之后才有的作用域。初始化web配置:

Spring Ioc学习(一)

web不同作用域间的bean的相互依赖定义:

Spring Ioc学习(一)
Spring Ioc学习(一)

下面这种情况与上面对比:注意不同

Spring Ioc学习(一)

自定义作用域需要实现org.springframework.beans.factory.config.scope接口

这种情况感觉使用比较少,就不看了。

ioc

继续阅读