本文源码: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