spring的ioc原理简介
来源:互联网 发布:工业相机测量软件 编辑:程序博客网 时间:2024/06/06 03:19
之前也简单使用过spring,也知道spring的两大核心aop和ioc,但对其实现原理却并不清楚,今天在一个讲解spring的视频上学到了ioc的原理,讲的很好,思路很清晰,在此记录一下。
在JavaEE中,经常有这样的情况,在一个Servlet中调用一个Service类中的方法:
public class UserService(){ pubilc void add(){ //do something }}public class Servlet(){ UserService userService=new UserService(); userService.add();}如果改动UserService类(比如类改名),那么需要的Servlet中修改所有对应的类名。
大家都知道,软件设计的理想情况是低耦合,最好是一个类做了改动之后,其他与之相关联的类不需要修改或者只要做少量修改就能正常工作,以上这种写法显然是不符合这种原则的。
spring使用以下几种技术/模式组合实现了ioc:
1、xml文件,
2、工厂模式,
3、dom4j(用来解析xml),
4、反射机制
对照上面的代码,看看spring的ioc如何实现Servlet调用Service中的方法
`1、在xml文件中配置bean<bean id="userService" class="com.test.UserService">`2、写一个工厂类public class Factory{ public static UserService getUserService(){ 3、使用dom4j解析上一步中userService的全类名 //String className="com.test.UserService"; 4、使用反射机制创建UserService对象并返回 return Class.forName(className).newInstance(); }}//UserService还是这样写public class UserService(){ public void add(){ //do something }}//Servlet中使用工厂方法获取Service对象,然后调用方法即可public class Servlet{ Factory.getUserService().add(); }
可以看到,spring的ioc在使用了工厂模式,xml,dom4j及反射机制后,使得UserService和Servlet之间的耦合度大大降低了,如果此时修改UserService的类名,只需要修改xml文件中的class属性值,而无需对Servlet做任何修改,就可以正常运行了。
阅读全文
0 0
- spring的ioc原理简介
- spring 的IOC原理
- Spring的IOC原理
- Spring的IOC原理
- Spring的IOC原理
- Spring的IOC原理
- Spring的IOC原理
- Spring的IOC原理
- Spring的IOC原理
- Spring的IOC原理
- Spring的IOC原理
- Spring IOC的原理
- Spring 的 IOC原理
- Spring的IOC原理
- Spring的IOC原理
- Spring的IOC原理
- spring的ioc原理
- spring的ioc原理
- VSCode使用git拷贝远程仓库
- Web项目中表单流程自定义之表单字段用户自定义
- 2017年10月12日训练笔记
- Python基础知识(一)
- STK 全球支付——一种即时支付的加密货币
- spring的ioc原理简介
- HTTP知识
- Hadoop学习1:Hadoop概述
- 【C++专题】static_cast, dynamic_cast, const_cast探讨
- C语言基础学习(一)--数据类型
- Channel
- C语言中return和exit的区别
- gdb调试参数
- bzoj1494 生成树计数(状压dp+生成树+矩阵倍增)