spring学习笔记2
使用服务定位器降低查找组件的复杂度
在容器的管理下,组件的依赖仅仅是接口的依赖。要降低查找组件的复杂性可以采用sun公司的javaEE的核心模式:服务定位器(尽量使用服务定位器来封装复杂的查找逻辑,对外公开简单的查询接口)
应用控制反转和依赖注入
当组件需要外部资源时(数据源或是对其他组件的引用),最直接的方式是查找,但组件需要知道如何获取资源。
解决方案
IoC 他的思想是反转资源获取的方向。传统的资源获取方式是组件向容器发起请求来查找资源,应用IoC则是容器主动将资源推送到管理它的组件之中,组件要做的只是选择一种合适的方式来接受资源。
实现方法
DI模式:
public class Module {
private Resource res;
public setResource (Resource rs) {
this.res = rs;
}
public Object function1(..) {
....
res.XXX();
}
}
// 容器类
public class Container {
private Map<String, Object> components;
public Container() {
components = new HashMap<String, Object>();
Resource resource = new Resource();
components.put("resource", resource);
Module module = new Module();
module.setResource(resource);
components.put("module", module);
}
}
不同的注入方式: (1) setter (2) 构造器注入 (3)接口注入(not recomended)
使用配置文件配置容器
可以采用 Commons BeanUtils 的第三方库实现。