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 的第三方库实现。

posted on 2013-04-25 11:46  wchq  阅读(94)  评论(0编辑  收藏  举报

导航