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



一  一个通讯协议的实现。

    主要用到了命令报文的传说和解析。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
 *     
 *     
 */
@Deprecated
public 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 OMALiteUtilBean				bean		= 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层。这里浅谈一下自己在编码中异常处理的一些心得。


    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值