12月工作小结(通讯协议,spring-test,JMS, 异常处理)

来源:互联网 发布:高斯键盘 mac 驱动 编辑:程序博客网 时间:2024/05/17 21:49


一  一个通讯协议的实现。

    主要用到了命令报文的传说和解析。Object和xml的互转,用到了digest和betwixt的jar包。

主要类图


这里参考了commons-beanutils 的ConvertUtils中部分的代码 根据类名作为key注册转换器。避免大量的if else判断



package com.cloud.util;import java.util.Map;import java.util.Set;import com.cloud.util.command.OMALiteCommand;import com.cloud.util.convert.AddConvert;import com.cloud.util.convert.AlertConvert;import com.cloud.util.convert.DeleteConvert;import com.cloud.util.convert.ExecConvert;import com.cloud.util.convert.FinalConvert;import com.cloud.util.convert.GetConvert;import com.cloud.util.convert.OMALiteCommandConvert;import com.cloud.util.convert.ReplaceConvert;import com.cloud.util.convert.ResultConvert;import com.cloud.util.convert.StatusConvert;import com.google.common.collect.ImmutableSet;import com.google.common.collect.Maps;/** *  * <p>Title: </p> * <p>Description: </p> * @author zhoulei create 2011-12-23 * @version 1.0 *      *      */@Deprecatedpublic class OMALiteUtilBean {private Set<String> commandNameSet =new ImmutableSet.Builder<String>().add("add","alert","delete","exec","get","replace","result","status","final").build();private Map<String, OMALiteCommandConvert>converters= Maps.newHashMap();private Map<String, String>schemas= Maps.newHashMap();private static OMALiteUtilBeanbean= new OMALiteUtilBean();public static OMALiteUtilBean getInstance() {return bean;}private OMALiteUtilBean() {registSchemas();registConverters();}private void registSchemas() {//schemas.put(Add.class.getSimpleName().toLowerCase(), new AddConvert());//schemas.put(Alert.class.getSimpleName().toLowerCase(), new AlertConvert());//schemas.put(Delete.class.getSimpleName().toLowerCase(), new DeleteConvert());//schemas.put(Exec.class.getSimpleName().toLowerCase(), new ExecConvert());//schemas.put(Get.class.getSimpleName().toLowerCase(), new GetConvert());//schemas.put(Replace.class.getSimpleName().toLowerCase(), new ReplaceConvert());//schemas.put(Result.class.getSimpleName().toLowerCase(), new ResultConvert());//schemas.put(Status.class.getSimpleName().toLowerCase(), new StatusConvert());//schemas.put(Final.class.getSimpleName().toLowerCase(), new FinalConvert());}private void registConverters() {converters.put("add", new AddConvert());converters.put("alert", new AlertConvert());converters.put("delete", new DeleteConvert());converters.put("exec", new ExecConvert());converters.put("get", new GetConvert());converters.put("replace", new ReplaceConvert());converters.put("result", new ResultConvert());converters.put("status", new StatusConvert());converters.put("final", new FinalConvert());}public void registerConverter(String commandName, OMALiteCommandConvert converter) {converters.put(commandName, converter);}public OMALiteCommandConvert lookupConverter(String commandName) {return ((OMALiteCommandConvert) converters.get(commandName.toLowerCase()));}public OMALiteCommandConvert lookup(OMALiteCommand ocommand) {return lookupConverter(ocommand.getClass().getSimpleName());}}


三 JMS  

   java消息服务。可用于不同服务器之间的消息传递。

  JMS 服务器http://activemq.apache.org/


 四 异常处理。

   异常处理是一个一直很重视但是并没有怎么处理好且没仔细体会的话题了。

   如果我们用struts2我们知道可以在将所有异常抛给它,然后在配置文件中配置异常对于的视图。另外spring也有相关的机制。

  这一次的编码没有用任何框架,用的servlet编写控制,并分了dao和service层。这里浅谈一下自己在编码中异常处理的一些心得。


    

原创粉丝点击