spring的Ioc详解
来源:互联网 发布:gn口4g低速率劣化优化 编辑:程序博客网 时间:2024/05/16 10:54
(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的写法一样,比较容易接受;而构造注入在应用程序加载的时候就已经完成了注入,可以控制加载顺序。各有优缺点,根据不同的情况选用了
- spring的Ioc详解
- spring的Ioc详解
- spring的IOC详解
- spring的IOC详解
- Spring 的IOC原理详解
- IOC、Spring的IOC
- Spring的IOC的注解详解
- Spring的IOC的注解详解
- Spring中IoC的入门实例详解
- Spring的DI和IoC实例详解
- Spring中IoC的入门实例详解
- Spring的DI和IoC实例详解
- Spring的IOC与DI详解
- Spring的注入,Ioc,DI详解
- spring的ioc和di详解
- Spring的DI和IoC实例详解
- Spring IOC的原理及详解。
- Spring框架的IoC容器详解
- 'log4j:ERROR LogMananger.repositorySelector was null'解决方法
- android开发---不会被杀掉的程序
- django manager use_for_related_fields使用
- Linux下获得系统时间的C语言的实现方法
- Android深入浅出之Audio 第一部分 AudioTrack分析
- spring的Ioc详解
- 字节序转换优化
- JAVA学习中的一些要点
- 事务
- AT命令中的\r\n
- 简单多线程
- 深入浅出InfoPath——InfoPath利器汇总
- Eclipse快捷键
- Ext右键菜单的创建与现实