MVC框架实现9---Smart框架Context实现
2012-03-09 16:55
387 查看
config 上下文:
package com.smart.context;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.smart.config.ActionDefine;
import com.smart.config.ConverterDefine;
import com.smart.config.RequestProcessorDefine;
/**
* 封装配置文件中的数据
* 采用单利设计模式
* @author qiaoyupeng
*
*/
public class ConfigContext {
private final static ConfigContext configContext = new ConfigContext();
private ConfigContext(){}
private RequestProcessorDefine processorDefine; //封装RequestProcessor节点数据
private Map<String,ActionDefine> actions = new HashMap<String,ActionDefine>(); //封装Actions节点数据
private List<ConverterDefine> cds = new ArrayList<ConverterDefine>();
public Map<String, ActionDefine> getActions() {
return actions;
}
public void setActions(Map<String, ActionDefine> actions) {
this.actions = actions;
}
public static ConfigContext getConfigcontext() {
return configContext;
}
public RequestProcessorDefine getProcessorDefine() {
return processorDefine;
}
public void setProcessorDefine(RequestProcessorDefine processorDefine) {
this.processorDefine = processorDefine;
}
public List<ConverterDefine> getCds() {
return cds;
}
public void setCds(List<ConverterDefine> cds) {
this.cds = cds;
}
}
Smart上下文:
package com.smart.context;
import java.util.HashMap;
import java.util.Map;
import com.smart.config.RequestProcessorDefine;
import com.smart.servlet.helper.DefaultRequestProcessor;
import com.smart.servlet.helper.RequestProcessor;
import com.smart.util.ReflectionUtil;
/**
* Smart框架的实体组件上下文
* @author qiaoyupeng
*
*/
@SuppressWarnings("rawtypes")
public class SmartContext {
private static final SmartContext context = new SmartContext();
private SmartContext(){}
private ConfigContext configContext = ConfigContext.getConfigcontext();
private RequestProcessor requestProcessor;
private Map<Class,Object> converters = new HashMap<Class,Object>();
public static SmartContext getContext() {
return context;
}
public Map<Class, Object> getConverters() {
return converters;
}
public void setConverters(Map<Class, Object> converters) {
this.converters = converters;
}
public ConfigContext getConfigContext() {
return configContext;
}
public RequestProcessor getRequestProcessor() {
// 当第一次获取时,进行初始化
if( requestProcessor == null) {
RequestProcessorDefine processorDefine = ConfigContext.getConfigcontext().getProcessorDefine();
if(processorDefine != null && processorDefine.getClazz() != null ){
requestProcessor = (RequestProcessor)ReflectionUtil.getInstance(processorDefine.getClazz());
}else {
requestProcessor = new DefaultRequestProcessor();
}
}
return requestProcessor;
}
public void setRequestProcessor(RequestProcessor requestProcessor) {
this.requestProcessor = requestProcessor;
}
}
package com.smart.context;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.smart.config.ActionDefine;
import com.smart.config.ConverterDefine;
import com.smart.config.RequestProcessorDefine;
/**
* 封装配置文件中的数据
* 采用单利设计模式
* @author qiaoyupeng
*
*/
public class ConfigContext {
private final static ConfigContext configContext = new ConfigContext();
private ConfigContext(){}
private RequestProcessorDefine processorDefine; //封装RequestProcessor节点数据
private Map<String,ActionDefine> actions = new HashMap<String,ActionDefine>(); //封装Actions节点数据
private List<ConverterDefine> cds = new ArrayList<ConverterDefine>();
public Map<String, ActionDefine> getActions() {
return actions;
}
public void setActions(Map<String, ActionDefine> actions) {
this.actions = actions;
}
public static ConfigContext getConfigcontext() {
return configContext;
}
public RequestProcessorDefine getProcessorDefine() {
return processorDefine;
}
public void setProcessorDefine(RequestProcessorDefine processorDefine) {
this.processorDefine = processorDefine;
}
public List<ConverterDefine> getCds() {
return cds;
}
public void setCds(List<ConverterDefine> cds) {
this.cds = cds;
}
}
Smart上下文:
package com.smart.context;
import java.util.HashMap;
import java.util.Map;
import com.smart.config.RequestProcessorDefine;
import com.smart.servlet.helper.DefaultRequestProcessor;
import com.smart.servlet.helper.RequestProcessor;
import com.smart.util.ReflectionUtil;
/**
* Smart框架的实体组件上下文
* @author qiaoyupeng
*
*/
@SuppressWarnings("rawtypes")
public class SmartContext {
private static final SmartContext context = new SmartContext();
private SmartContext(){}
private ConfigContext configContext = ConfigContext.getConfigcontext();
private RequestProcessor requestProcessor;
private Map<Class,Object> converters = new HashMap<Class,Object>();
public static SmartContext getContext() {
return context;
}
public Map<Class, Object> getConverters() {
return converters;
}
public void setConverters(Map<Class, Object> converters) {
this.converters = converters;
}
public ConfigContext getConfigContext() {
return configContext;
}
public RequestProcessor getRequestProcessor() {
// 当第一次获取时,进行初始化
if( requestProcessor == null) {
RequestProcessorDefine processorDefine = ConfigContext.getConfigcontext().getProcessorDefine();
if(processorDefine != null && processorDefine.getClazz() != null ){
requestProcessor = (RequestProcessor)ReflectionUtil.getInstance(processorDefine.getClazz());
}else {
requestProcessor = new DefaultRequestProcessor();
}
}
return requestProcessor;
}
public void setRequestProcessor(RequestProcessor requestProcessor) {
this.requestProcessor = requestProcessor;
}
}
相关文章推荐
- MVC框架实现3---Smart框架配置文件解析
- MVC框架实现1---Smart框架简介
- MVC框架实现4---Smart框架Action组件接口设计
- MVC框架实现6---Smart框架ActionServlet控制器组件实现
- MVC框架实现10---Smart框架打包、下载、使用
- [py]web框架本质-自动动手实现一个mvc框架
- 一起写框架-MVC框架-基础功能-实现forward和redirect的跳转(四)
- 一起写框架-MVC框架-基础功能-DispacherServlet控制器的实现(三)
- 如何开发一个java开源框架-----Jvn框架之实现mvc框架模式(第一讲)
- MVC框架实现2---Smart通用常量类和工具类代码
- 前端控制器是整个MVC框架中最为核心的一块,它主要用来拦截符合要求的外部请求,并把请求分发到不同的控制器去处理,根据控制器处理后的结果,生成相应的响应发送到客户端。前端控制器既可以使用Filter实现(Struts2采用这种方式),也可以使用Servlet来实现(spring MVC框架)。
- 如何开发一个java开源框架-----Jvn框架之实现自定义Annotation以及拦截器(第五讲)
- mybatis 中应用二级缓存(使用框架本身实现的缓存机制)
- Volley框架解析(六)-----Cache接口及其默认实现类解析
- 徒手撸框架--实现IoC
- 使用设计模式实现Undo,Redo框架
- xStream框架实现bean转成xml
- 【iOS开发-77】用storyboard实现主流框架:UITabBarController+UINavigationController
- ASP+FSO+框架实现ASP生成htm并分页的方法(批量)
- 实现RPC框架,几行代码就够了