WEB开发网
开发学院软件开发Java 设计 REST 风格的 MVC 框架 阅读

设计 REST 风格的 MVC 框架

 2010-01-08 00:00:00 来源:WEB开发网   
核心提示: 对于 Guice 容器,通过 Injector 实例可以返回所有绑定对象的实例,设计 REST 风格的 MVC 框架(4),代码见清单 4,清单 4. 定义 GuiceContainerFactorypublicclassGuiceContainerFactoryimplementsContai

对于 Guice 容器,通过 Injector 实例可以返回所有绑定对象的实例,代码见清单 4。


清单 4. 定义 GuiceContainerFactory
public class GuiceContainerFactory implements ContainerFactory { 
  private Injector injector; 
 
  public List<Object> findAllBeans() { 
    Map<Key<?>, Binding<?>> map = injector.getBindings(); 
    Set<Key<?>> keys = map.keySet(); 
    List<Object> list = new ArrayList<Object>(keys.size()); 
    for (Key<?> key : keys) { 
      Object bean = injector.getInstance(key); 
      list.add(bean); 
    } 
    return list; 
  } 
  ... 
} 

类似的,通过扩展 ContainerFactory,就可以支持更多的 IoC 容器,如 PicoContainer。

出于效率的考虑,我们缓存所有来自 IoC 的 Controller 实例,无论其在 IoC 中配置为 Singleton 还是 Prototype 类型。当然,也可以修改代码,每次都从 IoC 容器中重新请求实例。

设计请求转发

和 Struts 等常见 MVC 框架一样,我们也需要实现一个前置控制器,通常命名为 DispatcherServlet,用于接收所有的请求,并作出合适的转发。在 Servlet 规范中,有以下几种常见的 URL 匹配模式:

/abc:精确匹配,通常用于映射自定义的 Servlet;

*.do:后缀模式匹配,常见的 MVC 框架都采用这种模式;

/app/*:前缀模式匹配,这要求 URL 必须以固定前缀开头;

上一页  1 2 3 4 5 6 7 8 9  下一页

Tags:设计 REST 风格

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接