解决service层实现依赖了Container容器类,使得组件不能脱离容器独立存在的问题,如何让组件不再依赖容器,引入了服务定位器。
服务器定位器(Service Locator):
服务定位器用来封装复杂的查找逻辑,同时对外开放简单的查找方法,所有组件都可以将查找请求委派给服务定位器。
使用服务定位器查找组件,这是一种主动查找的行为。
这种查找有一个缺点:
组件需要知道如何查找资源。
这时我们可以考虑被动查找:反转资源获取方向,这就是大名鼎鼎的Ioc(控制反转)。容器主动将资源推送给组件,组件则以一种合适的方式来接受资源。
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
我们从一个简单的容器开始,一步步的重构,最后实现一个基本的Spring框架的雏形,为了帮助我们更加深入的理解Spring的IoC的原理和源码。 详细内容见博文: 【SSH进阶之路】一步步重构容器实现Spring的IoC——从一个简单的容器开始(八) 【SSH进阶之路】一步步重构容器实现Spring的IoC——解决容器对组件的“侵入式”管理的两种方案--服务定位器和IoC容器(九) 【SSH进阶之路】一步步重构容器实现Spring的IoC——工厂+反射+配置文件实现IoC容器(十)
资源推荐
资源详情
资源评论
收起资源包目录
SpringIoC的简单实现 (103个子文件)
ClassPathXmlApplicationContext.class 2KB
FileSystemXmlApplicationContext.class 2KB
Container.class 1KB
Container.class 1KB
Container.class 1KB
Client.class 891B
Client.class 683B
Client.class 683B
ServiceImpl.class 683B
Client.class 683B
ServiceImpl.class 672B
ServiceImpl.class 672B
ServiceImpl.class 652B
ServiceImpl.class 619B
Client.class 609B
ServiceLocator.class 578B
DaoImplA.class 572B
DaoImplB.class 572B
DaoImplA.class 572B
DaoImplB.class 572B
DaoImplA.class 572B
DaoImplB.class 572B
DaoImplA.class 572B
DaoImplB.class 572B
DaoImplA.class 572B
DaoImplB.class 572B
Service.class 201B
Service.class 201B
BeanFactory.class 180B
Service.class 151B
Service.class 151B
Service.class 151B
Dao.class 135B
Dao.class 135B
Dao.class 135B
Dao.class 135B
Dao.class 135B
.classpath 410B
.classpath 301B
.classpath 301B
.classpath 301B
.classpath 301B
jaxen-1.1.1.jar 222KB
jdom.jar 149KB
ClassPathXmlApplicationContext.java 2KB
FileSystemXmlApplicationContext.java 2KB
Container.java 1KB
Container.java 1KB
Container.java 1KB
Client.java 654B
Client.java 422B
Client.java 393B
Client.java 393B
ServiceImpl.java 367B
ServiceImpl.java 365B
ServiceImpl.java 345B
ServiceImpl.java 334B
ServiceImpl.java 334B
Client.java 325B
ServiceLocator.java 256B
DaoImplA.java 226B
DaoImplB.java 225B
DaoImplA.java 212B
DaoImplA.java 212B
DaoImplA.java 212B
DaoImplA.java 212B
DaoImplB.java 211B
DaoImplB.java 211B
DaoImplB.java 211B
DaoImplB.java 211B
Service.java 193B
Service.java 193B
Service.java 102B
Service.java 102B
Service.java 100B
BeanFactory.java 96B
Dao.java 88B
Dao.java 88B
Dao.java 88B
Dao.java 88B
Dao.java 88B
org.eclipse.jdt.core.prefs 629B
org.eclipse.jdt.core.prefs 629B
org.eclipse.jdt.core.prefs 629B
org.eclipse.jdt.core.prefs 629B
org.eclipse.jdt.core.prefs 629B
.project 380B
.project 380B
.project 380B
.project 380B
.project 380B
readme.txt 515B
readme.txt 515B
readme.txt 257B
readme.txt 257B
readme.txt 255B
readme.txt 255B
readme.txt 179B
readme.txt 179B
readme.txt 114B
共 103 条
- 1
- 2
资源评论
程序猿小亮
- 粉丝: 1w+
- 资源: 23
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功