-------------------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. JDk和Mevan安装和配置

    一.Mevan安装和配置 1.下载Maven 官方下载地址:http://maven.apache.org/download.html 选择你所希望下载的版本,并保存到常用安装目录.这里以Maven ...

  2. Qt 编译完后指定输出路径

    make install INSTALL_ROOT=/home/hotot/qt4rls

  3. pthread信号

    信号是典型的异步事件.内核在某个信号出现时有三种处理方式: 忽略信号,除了SIGKILL和SIGSTOP信号不能忽略外,其他大部分信号都可以被忽略: 捕捉信号,也就是在信号发生时调用一个用户函数,注意 ...

  4. 微信后端服务架构及其过载控制系统DAGOR

    微信架构介绍   眼下的微信后端包含3000多个移动服务,包括即时消息.社交网络.移动支付和第三方授权.该平台每天收到的外部请求在10 ^10个至10^11个.每个这样的请求都会触发多得多的内部微服务 ...

  5. Mysql Workbench 连接CentOs MySQL

    系统环境: 计算机ip:192.168.1.105  CentOS+Mysql 远程计算机ip:192.168.1.118  Win7+MySQLWorkbench   登陆服务器:bin/mysql ...

  6. 解决hue查询中文报错问题

    hue 4.0查询查询中包含中文报一下错误 (1366, Incorrect string value: \\xE4\\xBA\\xAC\\xE4\\xB8\\x9C... for column se ...

  7. 用原生 JS 实现双向绑定及应用实例

    写在前面: 所谓的双向绑定,无非是从界面的操作能实时反映到数据,数据的变更也能实时展现到界面.angular封装了双向绑定的方法,使双向绑定变得十分简单.但是在有些场景下(比如下面那个场景),不能使用 ...

  8. iPhone应用提交流程:如何将App程序发布到App Store

    http://www.techolics.com/apple/20120401_197.html 对于刚加入iOS应用开发行列的开发者来说,终于经过艰苦的Coding后完成了第一个应用后最重要的历史时 ...

  9. 【python】使用Python中的urlparse、urllib抓取和解析网页

    一.解析URL 函数urlparse(urlstring [, default_scheme [, allow_fragments]])的作用是将URL分解成不同的组成部分,它从urlstring中取 ...

  10. Tomcat服务器端口的配置

    一.Tomcat服务器端口的配置 Tomcat的所有配置都放在conf文件夹之中,里面的server.xml文件是配置的核心文件. 如果想修改Tomcat服务器的启动端口,则可以在server.xml ...