本文源码:GitHub·点这里 || GitEE·点这里

一、IOC控制反转

1、IOC容器思想

2、控制反转

  • 传统方式
  • IOC容器

3、依赖注入

二、IOC容器案例

1、买票乘车场景

  • 简单乘车类
public class ByBus {
    // 方式一:直接实例化
    // private BuyTicket buyTicket = new BuyTicket () ;

    private BuyTicket buyTicket ;
    public BuyTicket getBuyTicket() {
        return buyTicket;
    }
    public void setBuyTicket(BuyTicket buyTicket) {
        this.buyTicket = buyTicket;
    }
    public void takeBus (){
        String myTicket = this.getBuyTicket().getTicket() ;
        if (myTicket.equals("ticket")){
            System.out.println("乘车");
        }
    }

}
  • 简单买票类
public class BuyTicket {
    public String getTicket (){
        return "ticket" ;
    }
}

2、Spring配置文件

这里用过Spring配置文件,给乘车类中,注入买票类,进而完成完整动作。

<bean id="byBus" class="com.spring.mvc.entity.ByBus">
    <property name="buyTicket" ref="buyTicket" />
</bean>
<bean id="buyTicket" class="com.spring.mvc.entity.BuyTicket"/>

3、测试代码

public class Test1 {
    @Test
    public void test01 (){
        ApplicationContext context =
        new ClassPathXmlApplicationContext("/ioc-contain-01.xml");
        ByBus byBus = (ByBus) context.getBean("byBus");
        byBus.takeBus();
    }
}

三、核心API总结

针对上面用到的几个核心API进行说明,后续持续总结。

1、BeanFactory

2、ApplicationContext

3、ClassPathXmlApplicationContext

4、FileSystemXmlApplicationContext

四、源代码地址

GitHub·地址
https://github.com/cicadasmile/spring-mvc-parent
GitEE·地址
https://gitee.com/cicadasmile/spring-mvc-parent
02-11 06:04