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 } public class UserServlet{ UserService userService=new UserService();
userService.add(); } |
5、使用工厂模式解耦合,但
Servlet 和工厂类又有了新的耦合,
所以它并不是最终的解决方案
public class UserService{ public } 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"
第二步:创建工厂类,使用 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底层原理的更多相关文章
- Spring_day01--课程安排_Spring概念_IOC操作&IOC底层原理&入门案例_配置文件没有提示问题
Spring_day01 Spring课程安排 今天内容介绍 Spring概念 Spring的ioc操作 IOC底层原理 IOC入门案例 配置文件没有提示问题 Spring的bean管理(xml方式) ...
- spring ioc aop 原理
spring ioc aop 原理 spring ioc aop 的原理 spring的IoC容器是spring的核心,spring AOP是spring框架的重要组成部分. 在传统的程序设计中,当调 ...
- Spring Aop底层原理详解
Spring Aop底层原理详解(来源于csdn:https://blog.csdn.net/baomw)
- 拜托!面试请不要再问我Spring Cloud底层原理[z]
[z]https://juejin.im/post/5be13b83f265da6116393fc7 拜托!面试请不要再问我Spring Cloud底层原理 欢迎关注微信公众号:石杉的架构笔记(id: ...
- spring AOP底层原理实现——jdk动态代理
spring AOP底层原理实现——jdk动态代理
- Spring AOP底层原理
------------------siwuxie095 Spring AOP 底层原理 AOP 即 Aspect Or ...
- Spring IOC设计原理解析:本文乃学习整理参考而来
Spring IOC设计原理解析:本文乃学习整理参考而来 一. 什么是Ioc/DI? 二. Spring IOC体系结构 (1) BeanFactory (2) BeanDefinition 三. I ...
- Spring Cloud底层原理(转载 石杉的架构笔记)
拜托!面试请不要再问我Spring Cloud底层原理 原创: 中华石杉 石杉的架构笔记 目录 一.业务场景介绍 二.Spring Cloud核心组件:Eureka 三.Spring Cloud核 ...
- [转帖]Spring Cloud底层原理
拜托!面试不要再问我Spring Cloud底层原理 https://mp.weixin.qq.com/s/ZH-3JK90mhnJPfdsYH2yDA 毫无疑问,Spring Cloud 是目前微服 ...
随机推荐
- linux下部署tomcat服务器之安装tomcat
下载tomcat压缩包 apache-tomcat-7.0.82.tar.gz 在把包放到linux 的softwore文件夹下 自己选择文件夹 tar -zxvf apache-tomcat-7. ...
- REST风格
1)Representational State Transfer,表述性状态转移,是一种软件架构风格 2)实现步骤 第一步:修改URL 例:http://localhost:8090/SMBMS_C ...
- (转)OAuth 2.0的设计思路
OAuth是一个关于授权(authorization)的开放网络标准,在全世界得到广泛应用,目前的版本是2.0版. 本文对OAuth 2.0的设计思路和运行流程,做一个简明通俗的解释,主要参考材料为R ...
- Vue3.0代理的设置
1.在主目录下创建vue.config.js 内容如下: const path = require('path'); function resolve (dir) { return path.join ...
- 系列文章--oracle简单入门教程
oracle入门很简单:八.oracle数据表 1.创建oracle数据表创建oracle数据表的语法如下: create table命令用于创建一个oracle数据表:括号内列出了数据表应当包含的列 ...
- centos6.5下tomcat安装
1.安装JDK 安装:rpm –ivh jdk-7u5-linux-i586.rpm2.配置Tomcat 解压:tar -zxvf apache-tomcat-8.0.11.tar.gz 移动到/us ...
- logstash使用分享
1.logstash时间处理函数 当业务场景需要自有的time字段覆盖@timestamp字段的情况下 需要使用 date { match => ["time", " ...
- VS工具相关内容
1.VS自带的Visual Studio中的<C# 语言规范>安装路径:C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC#\Sp ...
- bs的过滤器功能例子
第一步 #src链接要符合下面要求,这里返回是 false or true def valid_img(src): return src.endswith('jpg') and 'img.jandan ...
- SSH&SFTP服务分离+家目录锁定
Step 1 在root用户下创建维护账号的家目录,此处以创建userftp帐号的家目录为例. mkdir -p /chroot/home/user Step 2 在root用户根目录下执行以下命令设 ...