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;
}
}