-------------------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】

Spring IoC底层原理的更多相关文章

  1. Spring_day01--课程安排_Spring概念_IOC操作&IOC底层原理&入门案例_配置文件没有提示问题

    Spring_day01 Spring课程安排 今天内容介绍 Spring概念 Spring的ioc操作 IOC底层原理 IOC入门案例 配置文件没有提示问题 Spring的bean管理(xml方式) ...

  2. spring ioc aop 原理

    spring ioc aop 原理 spring ioc aop 的原理 spring的IoC容器是spring的核心,spring AOP是spring框架的重要组成部分. 在传统的程序设计中,当调 ...

  3. Spring Aop底层原理详解

    Spring Aop底层原理详解(来源于csdn:https://blog.csdn.net/baomw)

  4. 拜托!面试请不要再问我Spring Cloud底层原理[z]

    [z]https://juejin.im/post/5be13b83f265da6116393fc7 拜托!面试请不要再问我Spring Cloud底层原理 欢迎关注微信公众号:石杉的架构笔记(id: ...

  5. spring AOP底层原理实现——jdk动态代理

    spring AOP底层原理实现——jdk动态代理

  6. Spring AOP底层原理

    ------------------siwuxie095                                 Spring AOP 底层原理         AOP 即 Aspect Or ...

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

    Spring IOC设计原理解析:本文乃学习整理参考而来 一. 什么是Ioc/DI? 二. Spring IOC体系结构 (1) BeanFactory (2) BeanDefinition 三. I ...

  8. Spring Cloud底层原理(转载 石杉的架构笔记)

    拜托!面试请不要再问我Spring Cloud底层原理 原创: 中华石杉 石杉的架构笔记   目录 一.业务场景介绍 二.Spring Cloud核心组件:Eureka 三.Spring Cloud核 ...

  9. [转帖]Spring Cloud底层原理

    拜托!面试不要再问我Spring Cloud底层原理 https://mp.weixin.qq.com/s/ZH-3JK90mhnJPfdsYH2yDA 毫无疑问,Spring Cloud 是目前微服 ...

随机推荐

  1. Jenkins配置slave遇到“无法启动该应用程序”的问题

    飞测说:最近在负责持续集成相关的工作,我们用的是jenkins+svn+maven+sonar, 今天在用slave这块出现了一个问题,排查了好久才解决,踩过的坑,现在和大家一起看看,希望对大家有帮助 ...

  2. HDU 1535

    http://acm.hdu.edu.cn/showproblem.php?pid=1535 水题 单向图,从1到P所有点,再从所有点回到1,问最小花费 先求一遍1的最短路,然后反向建图,再求一遍1的 ...

  3. 基于Html5的爱情主题网站–表白神器

    介绍 一个基于基于Html5的爱情主题,文字采用打字机效果,逐字打印,并带有键盘敲击声音.在chrome,safari,firefox,IE10下都有效,chrome下效果最佳.要注意的是safari ...

  4. 第8课 goto和void分析

    遭人遗弃的goto: C语言是一种面向过程的结构化语言,其中主要结构有三种,顺序执行.选择执行.循环执行.再复杂的程序也是由这三种结构组合而成的. goto破坏了结构化特性,使程序以第四种方式执行,结 ...

  5. 20155319 2016-2017-2 《Java程序设计》第六周学习总结

    20155319 2016-2017-2 <Java程序设计>第六周学习总结 教材学习内容总结 ==第十章 输入/输出== 10.1 InputStream与OutputStream 10 ...

  6. BZOJ4372: 烁烁的游戏【动态点分治】

    Description 背景:烁烁很喜欢爬树,这吓坏了树上的皮皮鼠. 题意: 给定一颗n个节点的树,边权均为1,初始树上没有皮皮鼠. 烁烁他每次会跳到一个节点u,把周围与他距离不超过d的节点各吸引出w ...

  7. sql中的一些通用函数

    1. SQL中使用case,when,then SELECT CASE TYPE THEN '正常' THEN '密码错误' ELSE '不正常' END '状态' FROM tbl_user 或者 ...

  8. Libusb学习

    1.参考:http://www.cnblogs.com/Daniel-G/archive/2013/04/22/3036730.html https://baike.so.com/doc/506541 ...

  9. 打造基于jQuery的日期选择控件

    终于把jQuery拼写正确了哈,哈哈javascript也是区分大小写的,所以确实不能写错,今天我来和大家分享的是日期选择控件的实现,功能也许不够强大,但是能够满足需求. 我之前也写过(正确的说是改过 ...

  10. PCB 设计文件中哪些可以不做成元件

    PCB 文件中哪些可以不做成元件 在 PCB 设计时有些元件为了快速,实际并不需要做成元件. 因为做成元件会浪费时间,并且生产时也没有实际的元件. 如下(持续更新): PCB 与 PCB 之前的连接人 ...