SpringIOC学习中。。。

  SpringIOC 收藏
SpringIOC解决了组件之间的耦合问题(一个好的设计,不但要实现代码的重用,还要将组件间的关系解藕)。IOC实现组件间的关系从程序内部提升到外部容器(XML配置文件)来管理。运行期间由容器将组件间的某种依赖关系注入到组件中,控制程序间的实现交给了外部的容器来完成。即常说的好莱坞原则。
    IOC(Inversion of Control) 即控制反转,这里的控制指的是,程序相关类之间的依赖关系。在Spring中创建被调用者的工作不再由调用者来完成,目的是为了更好的扩展性和良好的可维护性。
    从面向对象的角度来讲,反转可以解释为"要依赖于抽象接口,而不应该依赖于实现",也就是说,考虑到程序的扩展和维护,我们的代码应该尽可能地依赖于接口,而不是依赖于具体的实现。
    即,所谓的控制反转,指的是在Spring框架中,类的依赖关系的控制并不需要出现在你的代码中,被反转了,这种依赖关系的控制  反转到了Spring容器中去了。
实例如下:
首先定义个接口IClassA,在IClassA接口中,声明一个display()方法。源代码:
package org.intong.ioc;
public interface IClassA
{
    public void display();
}
定义一个实现类ClassA:
package org.intong.ioc;
public class 类implements IClassA
{
    public void display()
    {
        System.out.println("display........");
    }
}
定义一个类ClassB,ClassB将直接持有一个IClassA的对象。
package org.intong.ioc;
public class ClassB{
    IClassA ica;
    public void setIca(IClassA ca)
    {
        this.ica = ca;
    }
    public void methodA()
    {
        ica.display();
    }
}
在Spring配置文件applicationContext.xml文件中设定ClassB和其他类之间的依赖关系。
applicationContext.xml文件配置如下:
.......
<bean id="ca" class="org.intong.ioc.ClassA"></bean>
<bean id="cb" class="org.intong.ioc.ClassB">
     <property name="ica">
           <ref bean="ca"/>
     </property>
</bean>
......
上例中,定义一个id为ca的节点,ca为org.intong.ioc.ClassA的对象,定义了一个cb的结点,该节点依赖于ca对象,对应地,在ClassB类中必须有一个ca的属性,并定义setter方法。
注意:每个bean的id属性都是该bean的唯一标识,程序通过id访问bean,bean与bean的依赖关系也通过id属性完成。
由上例可以看到,创建ClassA的工作不再由ClassB来完成,而是交给了Spring容器来完成。
其实说白了就是,不用new对象啦,只要把我要调用的对象在哪里,在配置文件里注明一下,自然有容器给你去创建对象了,不用你操心。


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/java_dujianguo/archive/2008/01/10/2033475.aspx

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值