SpringIOC的小例子

Posted bihang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringIOC的小例子相关的知识,希望对你有一定的参考价值。

IOC

IOC--Inversion of Control即控制反转,常常和DI--依赖注入一起被提到。

核心是为了解除程序之间的耦合度。

那么什么样的代码是耦合度高的呢?

假如有个人现在去买苹果

interface Fruit{}
class Apple implements Fruit{}
class Person{
    private Apple apple;
    public Person(){
        apple = new Apple();
    }
}

然后家里有苹果了,又去买梨子,这时候就得改代码

class Pear implements Fruit{}
class Person{
    private Pear pear;
    public Person(){
        pear = new Pear();
    }
}

再买别的就得一直改代码。
假如把代码解耦,只留下接口,写成这样

class Person{
    public Fruit fruit;
    public Person(Fruit fruit){
        this.fruit = fruit;
    }
}

假如现在再买橘子,只需要创建橘子类和修改Spring的配置文件就可以,不用修改Person类的代码

class Orange implements Fruit{}

<bean id="orange" class="cn.bh.springtest.Orange" />

<bean id="person" class="cn.bh.springtest.Person">
<constructor-arg ref="orange">
</bean>

在测试类里面测试

ApplicationContext applicationContext =new ClassPathXmlApplicationContext("spring.xml");
Person person = (Person) applicationContext.getBean("person");
System.out.println(person.fruit.toString());//输出[email protected]

可以看到没有改动代码的情况下买到了橘子。


以上是关于SpringIOC的小例子的主要内容,如果未能解决你的问题,请参考以下文章

分享几个实用的代码片段(附代码例子)

分享几个实用的代码片段(附代码例子)

Spring入门系列:篇2——SpringIOC

微信小程序代码片段

sh 要记住我不时使用的小片段。

node的function函数和路由代码的小例子