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层。这里浅谈一下自己在编码中异常处理的一些心得。
- 12月工作小结(通讯协议,spring-test,JMS, 异常处理)
- 7月工作小结
- 11月工作小结(统计分析报表的一些心得体会)
- 2013年2月工作小结 -- 最美工作月
- 2013年1月工作小结 -- 上线后的懈怠
- 2013年4月工作小结 -- 穿越前的回眸
- 2013年5月工作小结 -- 需求变更与Bug
- 2013年6月工作小结-- 项目终验前的忙碌
- 2013年6月工作小结-- 终验前的忙碌
- 月工作小结青岛我的工作网
- 一个月工作回顾
- 第一月工作心得
- 5月工作内容
- sql统计某年的12个月工作数据
- 2013年3月工作小结 -- 热烈庆祝ECM系统成功升级到V2.0
- 接下来一个月工作安排
- 10月工作状态总结
- Spring JMS 消息处理
- 离职的前夕
- WinCE 关闭屏幕、打开屏幕函数
- proftpd 登录时间长,而且会连接客户端的113端口解决办法
- Shared Pool 的学习!
- 解决如何使ListView 自动滚的问题?
- 12月工作小结(通讯协议,spring-test,JMS, 异常处理)
- C# 异步调用代理类
- Emacs自定义配置文件 - google-c-style.el等编程插件使用方法
- ListView 读取和写入
- 汇编语言---移位指令
- Hibernate中Query.uniqueResult();
- Android编程典型实例与项目开发案例
- extjs通用CRUD方法
- 用C语言解析BMP文件的结构