(IOC)应用本身不负责依赖对象的创建和维护,而是由外部容器来负责。这样控制权就由应用转移到外部容器,控制权的转移就是所谓的反转(也称依赖注入)
1:设值注入
当某个 Java 实例(调用者)需要另一个Java 实例(被调用者)时,在传统的程序设计过程中,通常由调用者来创建被调用者的实例。而在依赖注入的模式下,创建被调用者的工作不再由调用者来完成,通常由 Spring 容器来完成,然后注入调用者,因此称为控制反转,也称为依赖注入。
Private Dao dao
/*定义需要被使用的接口,具体使用什么实现类这里不管*/
public void set Dao (Dao dao){
this. dao = dao;
}
/*定义被注入接口的set方法,该方法一定要符合JAVABEAN的标准。在运行时候,
*Sping就会根据配置的<ref local=""/>,找到需要注入的实现类*/
/*这个时候使用的dao,就不再是接口Dao本身,而是被注入的子类实例,所以这里的function()动作就是具体子类的function动作*/
<beans>
<bean id="调用者名字" class="调用者">
<!-- 声明调用者实现类中的属性 -->
<property name="属性名">
<ref local="被调用者名字"/>
<!-- 指定其中声明的属性,需要用本地的那个id对应的class
这里local的值为"被调用者名字",表示shux的属性值在注入的时候,
将会用被调用者名字对应的实例注入
-->
</property>
</bean>
<bean id="被调用者名字" class="被调用者/>
</beans>
2:构造注入:
构造注入即是通过构造函数进行注入,到目前为止,SPRINT支持设值注入与构造注入两种方式,它们可以同时存在。
Private Dao dao;
public调用者类(Dao dao){
this. dao = dao;
}
<bean id="调用者名字" class="调用者">
<!-- 定义需要被构造注入的实现类,同设值注入的结果一样,都是注入接口的实现类 -->
<constructor-arg><ref bean="被调用者名字"/></constructor-arg></bean>
<bean id="被调用者名字" class="被调用者"/>
</beans>
设值注入与传统JAVABEAN的写法一样,比较容易接受;而构造注入在应用程序加载的时候就已经完成了注入,可以控制加载顺序。各有优缺点,根据不同的情况选用了
分享到:
相关推荐
SpringIOC Spring 框架是一个流行J2EE的开源产品,它提供了统一的应用架构方式、大量的中间层功能模块,大大简化了传统J2EE的开发模式。它的核心代码均来自于真实的项目,是由Spring 之父Rod Johnson 从商业项目开发...
通过Spring的源代码,深入简介其实现IOC的原理
spring ioc di aop详解
Spring框架系列(7) - Spring IOC实现原理详解之IOC初始化流程.doc
spring IOC容器依赖注入XML配置详解 运行环境:eclipse 构建工具:maven 不提供maven构建,maven用来解决jar包的依赖
主要介绍了Spring IOC原理详解,具有一定借鉴价值,需要的朋友可以参考下。
Spring框架系列(6) - Spring IOC实现原理详解之IOC体系结构设计.doc
主要介绍了Spring IOC 容器启动流程分析,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
深入理解 IoC 这里用经典 class Rectangle 来举例: 两个变量:长和宽 ...注意 :一定要生成 set() 方法,因为 Spring IoC 就是通过这个 set() 方法注入的; toString() 方法是为了我们方便打印查看。
Spring框架系列(8) - Spring IOC实现原理详解之Bean实例化(生命周期,循环依赖等).doc
主要介绍了Spring IOC和aop的原理及实例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
Spring IOC aop 原理详解
主要介绍了SpringIOC——DI循环依赖,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
Spring中IoC的入门实例详解.doc
主要介绍了简单实现Spring的IOC原理详解,具有一定借鉴价值,需要的朋友可以参考下。
主要介绍了Spring Ioc项目实践过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
spring 的aop的详解如:切面,连接点,通知,切入点,目标对象,代理对象及annotation方式的aop实现和xml方式的事务管理等
主要介绍了spring在IoC容器中装配Bean详解,具有一定借鉴价值,需要的朋友可以参考下
Spring IOC容器详解,是个轻量级容器
本文主要介绍了Spring中的IOC的相关知识。具有很好的参考价值。下面跟着小编一起来看下吧