文档章节

Spring依赖注入的过程,ref注入与

Candy520
 Candy520
发布于 2016/10/09 15:20
字数 422
阅读 152
收藏 0

举例说明下spring依赖注入的具体过程:

applicationcontext.xml的配置如下:

(通过ref的方式注入)

//ref注入:

<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <!-- 在spring框架加载时创建 -->

 <bean id="borrowDao" class="dao.impl.BorrowDao" primary="true"  lazy-init="true">

  <property name="sessionFactory" ref="sessionFactory"></property>

 </bean>

 

bean id="borrowDao": 标识该bean的名称,通过factory.getBean(“id”)来获得实例,
Singleton : 默认为true,即单实例模式,每次getBean(“id”)时获取的都是同
一个实例,如果设置为false,即原型模式,则每次获取的是新创建
的实例。

class="dao.impl.BorrowDao" : 用于告诉spring将对象注入到哪个类
property name="sessionFactory" ref="sessionFactory": 告诉spring需要new一个sessionFactory对象,此对象依赖于ref="sessionFactory"类。
此种注入方式是单例模式注入,即只new一次sessionFactory对象,每一次注入的对象都是同一个sessionfactory对象。
注入的具体流程如下:

1.readXML(filename);//读取此配置文件,在加载spring容器时候完成,如果用的是lazy-init,则在注入前完成
2.instanceBeans();//实例化对象
3.injectObject();//注入到目标对象(BorrowDao)

具体示例代码见传智源代码spring-07

 

 

另外,还可以采用内部bean的方式注入:

 <bean id="orderservice" class="cn.itcast.service.OrderServiceBean" primary="true">

  <property name="orderDao">

    <bean class = "cn.itcast.service.OrderServiceBean"/>//不在使用ref

  </property>

 </bean>

采用这种方式的时候,每次注入的cn.itcast.service.OrderServiceBean只能为orderservice服务

 

struts的注入
struts在将前端form的对象交给指定方法的时候也会根据form表单中的的名字new一个对象注入到用户指定执行的方法(如method = ...)所在的对象中。

© 著作权归作者所有

Candy520
粉丝 49
博文 51
码字总数 63811
作品 0
深圳
私信 提问
Spring Dependency

我们知道Spring的最重要的核心是Ioc,有时候也被称为DI(Dependency Injection,依赖注入),那么关于Dependency,你了解多少呢? 之前我们有提到IOC和DI的关系与概念,我是把它们区分开了,所...

Real_man
2018/05/20
0
0
Spring中依赖注入的四种方式

在Spring容器中为一个bean配置依赖注入有三种方式: · 使用属性的setter方法注入 这是最常用的方式; · 使用构造器注入; · 使用Filed注入(用于注解方式). 使用属性的setter方法注入 首...

Zero零_度
2015/04/07
0
0
Spring IOC的三种依赖注入方式

IOC为了处理类与类之间复杂关系而产生,通过控制反转与依赖注入思想将类与类之间的关系放到配置文件中,个各类都是相对独立存在的,类之间的调用关系由配置文件来实现。由此实现程序的松耦合...

hanzhankang
2014/01/24
0
0
Spring环境搭建之:控制反转(IoC Inversion of Control)与依赖注入(DI Depenency Injection)

控制反转,要明白是控制什么,怎么反转了就OK了 1.控制什么 不用Spring框架时,每个类文件中所用到的对象都要我们在代码中通过new来创建,这样一来,在面向接口编程时,也要通过new来明确的创...

木子丰
2013/11/27
0
0
【第三章】 DI 之 3.2 循环依赖 ——跟我学spring3

3.2.1 什么是循环依赖 循环依赖就是循环引用,就是两个或多个Bean相互之间的持有对方,比如CircleA引用CircleB,CircleB引用CircleC,CircleC引用CircleA,则它们最终反映为一个环。此处不是...

azikaxu
2015/04/15
0
0

没有更多内容

加载失败,请刷新页面

加载更多

typescript 接口 函数类型 可索引类型

函数类型 可索引类型 数字索引签名 字符串索引签名 数字索引签名返回值 必须是 字符串索引签名返回值的子集 只读索引签名

lilugirl
今天
3
0
Oracle SQL语法实例合集

如需转载请注明出处https://my.oschina.net/feistel/blog/3052024 目的:迅速激活Oracle SQL 参考:《Oracle从入门到精通》 ------------------------------------------------------------......

LoSingSang
今天
2
0
增加 PostgreSQL 服务进程的最大打开文件数

https://serverfault.com/questions/628610/increasing-nproc-for-processes-launched-by-systemd-on-centos-7 要在systemd的配置里加才行...

helloclia
今天
2
0
组合模式在商品分类列表中的应用

在所有的树形结构中最适合的设计模式就是组合模式,我们看看常用商品分类中如何使用。 先定义一个树形结构的商品接口 public interface TreeProduct { List<TreeProduct> allProducts(...

算法之名
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部