首页 > 编程语言 > 详细

Spring Ioc学习(一)

时间:2014-05-08 00:32:56      阅读:484      评论:0      收藏:0      [点我收藏+]

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

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

Spring容器启动是通过BeanFactory或ApplicationContext读取配置文件,该配置文件基本配置如下:

bubuko.com,布布扣

实例化容器方法:

ApplicationContext context = new ClassPathXmlApplicationContext(new String[]{"service.xml","daos.xml"});

service.xml代码如下:

bubuko.com,布布扣

daos.xml代码如下:

bubuko.com,布布扣


由配置文件可知PetStroreServiceImpl有两个成员变量SqlMapAccountDao和SqlMapItemDao

这样在创建PetStroreServiceImpl时,Spring Ioc也会实例化另外两个实例变量。

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

bubuko.com,布布扣

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

容器使用:

bubuko.com,布布扣

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

bubuko.com,布布扣


对bean的实例化:

1.最最基本的配置:

bubuko.com,布布扣


2.通过静态工场方法:

bubuko.com,布布扣

 

3.通过实体工场方法:

bubuko.com,布布扣

bubuko.com,布布扣

 

依赖注入:

bubuko.com,布布扣

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

bubuko.com,布布扣

bubuko.com,布布扣

bubuko.com,布布扣

bubuko.com,布布扣

bubuko.com,布布扣

bubuko.com,布布扣

bubuko.com,布布扣

bubuko.com,布布扣

bubuko.com,布布扣

bubuko.com,布布扣

 

bubuko.com,布布扣

bubuko.com,布布扣

bubuko.com,布布扣

bubuko.com,布布扣

 

bubuko.com,布布扣

bubuko.com,布布扣

bubuko.com,布布扣

bubuko.com,布布扣

bubuko.com,布布扣

 

bubuko.com,布布扣

bubuko.com,布布扣

 

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

bubuko.com,布布扣

Bean的作用域:

bubuko.com,布布扣

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

bubuko.com,布布扣

Prototype作用域:

bubuko.com,布布扣


Spirng容器不管理prototype Bean的整个生命周期。

bubuko.com,布布扣

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

bubuko.com,布布扣

Request,Session,Global Session三个作用域是结合web之后才有的作用域。初始化web配置:

bubuko.com,布布扣

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

bubuko.com,布布扣

bubuko.com,布布扣

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

bubuko.com,布布扣


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

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



Spring Ioc学习(一),布布扣,bubuko.com

Spring Ioc学习(一)

原文:http://blog.csdn.net/moneyzhong/article/details/24653015

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!