spring核心之IOC
Posted ztycandy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring核心之IOC相关的知识,希望对你有一定的参考价值。
spring IOC 控制反转 核心思想
了解IOC,首先需要了解DI --- 软件设计的重要思想 依赖注入
什么事依赖注入呢?
例子:设计行李箱类
传统写法:首先设计轮子,根据轮子设计底盘,根据底盘设计箱体。OK,设计完成。
换成java中类的描述:1.轮子类:Class Tire int size;//轮子大小 Tire()this.size = 20; 2.底盘类 : Class Botton Tire tire;//轮子 Botton()this.tire = new tire;
3.箱体类:Class FrameWork Botton botton;//底盘 FramWork() this.botton = new botton;
生成一个行李箱:new FrameWork();
上层建筑依赖下层建筑。每当需要设计一个新式的行李箱,则需要从轮子到箱体全部需要重新写代码,严重违反了代码的可重用性;
DI写法:首先设计箱体,根据箱体选择底盘,根据底盘选择轮子。OK,设计完成。
换成java中类的描述:1.轮子类:Class Tire int size;//轮子大小 Tire(int size)this.size = size; 2.底盘类 : Class Botton Tire tire;//轮子 Botton(Tire tire)this.tire = tire;
3.箱体类:Class FrameWork Botton botton;//底盘 FramWork(Botton botton) this.botton = botton;
生成一个行李箱:Tire tire = new Tire(20); Botton botton = new Botton(tire);FrameWork frameWork = new FrameWork(botton);
上层建筑控制下层建筑。将轮子,底盘类,箱体类设计成接口设计,每次只需在main方法中注入即可,不需要修改过多的代码量,需要什么样的轮子全部继承轮子接口。
依赖注入减少了我们重复修改源代码。
依赖注入的几种方式:setter方法,Construsctor构造方法注入(上面实现的那种)
当然我们的IOC可不止这点技能,我们的IOC作为容器的存在,当然是海纳百川
1.bean工厂,将各种bean对象注入到IOC容器中统一维护,做到随用随取。隐藏了各种注入细节。
实例化bean运用到了java的反射机制
IOC容器支持的功能:依赖注入,依赖检查,自动装配,支持集合,指定初始化的销毁方法(这就和spring的另一个基础核心内容AOP相关),支持回调方法。
以上是关于spring核心之IOC的主要内容,如果未能解决你的问题,请参考以下文章
Springday02 jabcTemplate注解IOC创建对象注解IOC注入注解 IO生命周期纯注解IOCSpring-junitAOP-JDK和CGLIB动态代理
SpringBoot脚手架项目002-004.Spring IOC_权限管理系统_Spring:什么是IOCSpring Bean注入SpringBean的注解bean的加载流程
JAVAWEB开发之Spring详解之——Spring的入门以及IOC容器装配Bean(xml和注解的方式)Spring整合web开发整合Junit4测试