-------------------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. vim 编辑 windows下的文本时出现乱码, 修改配置后 已解决

    最近用VIM 查看一个 WINDOWS下的文本,打开以后发现出现乱码,具体如上图. 最后在网上找到了一个解决方法: 原文地址: https://www.zhihu.com/question/22363 ...

  2. .NET工具软件收集

    ======================== ILSPY        官网:  http://ilspy.net/ .NET Reflector                官网:http:/ ...

  3. nginx brotli 压缩试用

    brotli 的压缩比相对gzip 有好多提升 测试试用docker 测试代码 https://github.com/rongfengliang/rollup-babel-demolibrary 运行 ...

  4. eclipse中点不出来提示

    当在用eclipse或是myeclipse时,可能会遇到不能自动提示,就是当你用到点的时候,后面不会出现相关的提示信息.这时,解决方法如下 : 1.菜单window->Preferences-& ...

  5. BUG的定位与分析思路

    一般来说bug大多数存在于3个模块: 1.前台界面,包括界面的显示,兼容性,数据提交的判断,页面的跳转等等,这些bug基本都是一眼可见的,不太需要定位,当然也不排除一些特殊情况,本身数据传过来的时候就 ...

  6. 渐进式 jpg 和 交错式 gif png 提高图片站体验

    渐进式 jpg 和 交错式 gif png 提高图片站体验= 渐进式的JPG比原始JPG还要小!! 让图片性感的露给你看~google picasa 和 smashing magazine 都有用到搞 ...

  7. CentOS 6.0 VNC远程桌面配置方法(转帖)

    问题:新装开发机,安装VNC软件后,按照下面文档配置后,无法用VNC view连接,关闭防火墙后可以连上 解决方法:说明问题出在防火墙配置上,除了允许15900端口外,还有其他要设,经过排查后,加上如 ...

  8. const T & 的适用范围

    我们往往在类中的函数体,重载操作中看到 const T & 的影子,以前还是比较纳闷. 对于非内部数据类型的参数而言,象void Func(A a) 这样声明的函数注定效率比较底.因为函数体内 ...

  9. PHP外部调用网站百度统计数据的方法详解

    目的:外部调用网站的百度统计(tongji.baidu.com)数据. 条件:1.具备调用目标网站的百度统计平台管理权限 2.PHP环境支持curl函数. 原理:同PHP小偷程序原理,通过curl函数 ...

  10. ORM sqlachemy

    本节内容 ORM介绍 sqlalchemy安装 sqlalchemy基本使用 多外键关联 多对多关系 表结构设计作业 1. ORM介绍 orm英文全称object relational mapping ...