手记

【备战春招】第15天 Spring入门

课程名称:Spring入门

课程章节:第1章 IoC概念介绍

课程讲师: 西昆仑

课程内容:

1、IoC概念介绍

  • 什么是IoC

Inversion of Control,控制反转、依赖注入

1)控制什么?控制对象的创建及销毁(生命周期)

2)反转什么?将对象的控制权交给IoC容器

  • 为什么用IoC

传统实现代码的高耦合性:所有行为需要主动创建对象,当对象类型变化替换工作量大

  • 方法改进

2、实现自己的一个IoC

约定:

所有Bean的生命周期交由IoC容器来管理

所有被依赖的Bean通过构造方法执行注入

被依赖的Bean需要优先创建

容器实现的功能

  • 实例化bean

  • 保存bean

  • 提供bean

1)每一个bean要产生一个唯一的id与之相对应

2)委托IoC容器创建一个bean

//组装构造方法所需要的参数值

Object[] paramValues = new Object[paramBeanIds.length];

for(int i=0;i<paramBeanIds.length;i++){

prarmValues[i]=beans.get(paramBeanIds[i]);

}

//调用构造方法实例化bean

Object bean = null;

for(Constructor<?> constructor : clazz.getConstructors()){

try{

bean = constructor.newInstance(paramValues);

}catch(InstantiationException e){

}catch(IllegalAccessException e){

}catch(InvocationTargetException e){

}

}

if(bean == null){

throw new RuntimeException("找不到合适的构造方法去实例化bean");

}

//将实例化的bean放入beans

beans.put(beanId,bean);

3)方法测试

3、Spring IoC入门

1)Spring依赖引入

2)创建XML配置文件

3)获取spring上下文

ApplicationContext context = new ClassPathXmlApplicationContext("spring.xml");

4)获取bean

Bean bean = context.getBean("bean",Bean.class);

课程收获:

本节课程通过自己编写Ioc容器与Spring管理的Ioc容器作对比,使用Spring Ioc的优势、实现原理理解更加容易,期待后续针对Ioc的更多应用课程讲解。


0人推荐
随时随地看视频
慕课网APP