模拟spring - 简单实现spring IOC
2015-11-11 09:13
423 查看
一、前言
IOC (Inverse of control) - 控制反转,spring的IOC实现原理为利用Java的反射机制并充当工厂的角色完成对象的装配和注入。
二、实现细节
附上一张类的结构图,该例子需要导入jdom.jar和junit.jar
<喎�"http://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+CqLZINPDu6dCZWFuPC9wPgo8cHJlIGNsYXNzPQ=="brush:java;">package com.zdp.model; // 用户类 public class User { private String userName; private String password; public String getUserName()
{ return userName; } public void setUserName(String userName) { this.userName = userName; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } }② UserService
?
③ UserDao
?
④ Bean工厂接口
?
⑤ Bean工厂实现
?
这里为核心代码,当然在实际情况中,这一块要复杂的多, 例如:可以一个bean引用另一个bean,还可以有多个配置文件、通过多种方式载入配置文件等等,不过原理还是采用Java的反射机制。
⑥ 配置文件
?
⑦ 单元测试
?
三、小结
上文仅仅是简单地模拟了spring的IOC的实现,虽然只是完成了spring中依赖注入的一小部分,但还是很好地展现了Java反射机制在spring中的应用,对于初学者理解IOC应该会有一点帮助。
IOC (Inverse of control) - 控制反转,spring的IOC实现原理为利用Java的反射机制并充当工厂的角色完成对象的装配和注入。
二、实现细节
附上一张类的结构图,该例子需要导入jdom.jar和junit.jar
<喎�"http://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+CqLZINPDu6dCZWFuPC9wPgo8cHJlIGNsYXNzPQ=="brush:java;">package com.zdp.model; // 用户类 public class User { private String userName; private String password; public String getUserName()
{ return userName; } public void setUserName(String userName) { this.userName = userName; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } }② UserService
?
?
?
?
⑥ 配置文件
?
?
上文仅仅是简单地模拟了spring的IOC的实现,虽然只是完成了spring中依赖注入的一小部分,但还是很好地展现了Java反射机制在spring中的应用,对于初学者理解IOC应该会有一点帮助。
相关文章推荐
- spring面试题
- Spring中IoC的入门实例
- 导出excel那些事
- spring组件扫描<context:component-scan/>使用详解
- java基础
- Spring IOC容器
- springboot 项目运行jsp
- 深入解析Java中的Classloader的运行机制
- 利用Hbase解决HDFS小文件合并
- 使用Spring框架的好处(转帖)
- myeclipse10.7破解成功 但 无法打war包 securecrt alert:integrity check error 解决方案
- MyEclipse新建工程中的Source Folder
- java集合之TreeSet
- java集合之HashSet
- struts2 hibernate登录
- eclipse jdk adt sdk abtbundle之间的关系
- Struts2中表单与Action传递数据三种方式
- struts2.0获取各种表单的数据
- Struts2中Action访问Servlet API的三种方法
- Struts2的Action和Servlet有什么联系,区别?