Spring IoC底层原理

-------------------siwuxie095

Spring IoC 底层原理

1、IoC 即 Inversion of Control,控制反转,把对象的创建

交给 Spring 进行管理

2、IoC 容器管理 Bean 的方式:

(1)基于配置文件的方式

(2)基于注解的方式

3、IoC 底层原理所使用的技术:

(1)XML 配置文件

(2)dom4j 解析 XML

(3)工厂模式

(5)反射

4、原始方案,耦合度太高


public class UserService{

public
void add(){}

}

public class UserServlet{

UserService userService=new UserService();

userService.add();

}

5、使用工厂模式解耦合,但
Servlet 和工厂类又有了新的耦合,

所以它并不是最终的解决方案


public class UserService{

public
void add(){}

}

public class UserServlet{

UserService userService=UserFactory.getService();

userService.add();

}

public class UserFactory{

public static UserService getService(){

return new UserService();

}

}

6、使用 Spring IoC 解耦合,目前较优的解决方案


第一步:创建 XML 配置文件,配置要创建对象的类

<bean id="userService"
class="com.siwuxie095.UserService" />

第二步:创建工厂类,使用 dom4j 解析 XML 配置文件+反射

public class UserFactory{

public static UserService getService(){

// 1、使用 dom4j 解析 XML 配置文件:

// 根据 id 属性值得到 class 属性值

String classValue="class 属性值";

// 2、使用反射创建类对象

Class clazz=Class.forName(classValue);

UserService userService=clazz.newInstance();

return userService;

}

}

【made by siwuxie095】

时间: 2024-10-13 01:05:16

Spring IoC底层原理的相关文章

spring ioc aop 原理

spring ioc aop 原理 spring ioc aop 的原理 spring的IoC容器是spring的核心,spring AOP是spring框架的重要组成部分. 在传统的程序设计中,当调用者需要被调用者的协助时,通常由调用者来创建被调用者的实例.但在spring里创建被调用者的工作不再由调用者来完成,因此控制反转(IoC):创建被调用者实例的工作通常由spring容器来完成,然后注入调用者,因此也被称为依赖注入(DI),依赖注入和控制反转是同一个概念. 面向方面编程(AOP)是以另

Spring AOP底层原理

------------------siwuxie095 Spring AOP 底层原理 AOP 即 Aspect Oriented Programming,面向切面编程, 即 不通过修改源代码的方式扩展功能 「在不修改源代码的情况下,对程序进行增强」 2.AOP 采取横向抽取机制,取代了传统纵向继承体系重复性 代码 3.AOP 底层原理所使用的技术 (1)JDK 的动态代理:针对实现了接口的类产生代理 即 有接口,使用动态代理创建接口实现类的代理对象 (2)CGLIB 的动态代理:针对没有实现

Spring?IOC设计原理解析:本文乃学习整理参考而来

Spring IOC设计原理解析:本文乃学习整理参考而来 一. 什么是Ioc/DI? 二. Spring IOC体系结构 (1) BeanFactory (2) BeanDefinition 三. IoC容器的初始化 1. XmlBeanFactory(屌丝IOC)的整个流程 2. FileSystemXmlApplicationContext 的IOC容器流程 1.高富帅IOC解剖 2. 设置资源加载器和资源定位 3.AbstractApplicationContext的refresh函数载入

[转帖]Spring Cloud底层原理

拜托!面试不要再问我Spring Cloud底层原理 https://mp.weixin.qq.com/s/ZH-3JK90mhnJPfdsYH2yDA 毫无疑问,Spring Cloud 是目前微服务架构领域的翘楚,无数的书籍博客都在讲解这个技术. 不过大多数讲解还停留在对 Spring Cloud 功能使用的层面,其底层的很多原理,很多人可能并不知晓. 因此本文将通过大量的手绘图,给大家谈谈 Spring Cloud 微服务架构的底层原理. 实际上,Spring Cloud 是一个全家桶式的

[Spring框架]Spring IOC的原理及详解。

这里感谢 CSDN 的原博客:http://blog.csdn.net/m13666368773/article/details/7802126 看后  受益匪浅,这里再重温一遍Spring IOC 1. IoC理论的背景我们都知道,在采用面向对象方法设计的软件系统中,它的底层实现都是由N个对象组成的,所有的对象通过彼此的合作,最终实现系统的业务逻辑. 图1:软件系统中耦合的对象 如果我们打开机械式手表的后盖,就会看到与上面类似的情形,各个齿轮分别带动时针.分针和秒针顺时针旋转,从而在表盘上产生

[Spring框架]Spring IOC的原理及详解

这里感谢 CSDN 的原博客:http://blog.csdn.net/m13666368773/article/details/7802126 看后  受益匪浅,这里再重温一遍Spring IOC 1. IoC理论的背景我们都知道,在采用面向对象方法设计的软件系统中,它的底层实现都是由N个对象组成的,所有的对象通过彼此的合作,最终实现系统的业务逻辑. 图1:软件系统中耦合的对象 如果我们打开机械式手表的后盖,就会看到与上面类似的情形,各个齿轮分别带动时针.分针和秒针顺时针旋转,从而在表盘上产生

Spring Cloud底层原理

目录 一.业务场景介绍 二.Spring Cloud核心组件:Eureka 三.Spring Cloud核心组件:Feign 四.Spring Cloud核心组件:Ribbon 五.Spring Cloud核心组件:Hystrix 六.Spring Cloud核心组件:Zuul 七.总结 概述 毫无疑问,Spring Cloud是目前微服务架构领域的翘楚,无数的书籍博客都在讲解这个技术.不过大多数讲解还停留在对Spring Cloud功能使用的层面,其底层的很多原理,很多人可能并不知晓.因此本文

面试请不要再问我Spring Cloud底层原理

概述 毫无疑问,Spring Cloud是目前微服务架构领域的翘楚,无数的书籍博客都在讲解这个技术.不过大多数讲解还停留在对Spring Cloud功能使用的层面,其底层的很多原理,很多人可能并不知晓.因此本文将通过大量的手绘图,给大家谈谈Spring Cloud微服务架构的底层原理. 实际上,Spring Cloud是一个全家桶式的技术栈,包含了很多组件.本文先从其最核心的几个组件入手,来剖析一下其底层的工作原理.也就是Eureka.Ribbon.Feign.Hystrix.Zuul这几个组件

Spring IOC设计原理解析(1)

一. 什么是Ioc/DI?大家都知道IOC 是控制反转(Inversion of Control,缩写为IoC)是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度. 之前我们的bean对象的创建是交由调用者通过new 的方式进行创建的, 那么这样的方式有一些不足之处: bean的整个生命周期都交给了这个调用者了, 过程如下:并将该对象的引用返回.如果该返回被一个引用接收,由于对象的引用不为0,对象依然存在,不会被垃圾回收. 而另外一个对象调用这个class 的时候还是会创建一个对