这部分的代码在
创建一个framework-common子项目。分成framework-lang和framework-util两个子模块。
定义一些基础类和工具类。
lang模块
lang包
定义抽象类BaseObject,实现equals,hashcode和toString方法,通过反射读取属性。并且提供一个构造器,可以传入需要忽略的属性名。
定义一个常量类,把一些常用的东西放进去。目前只想到了System.getProperty("line.separator"),以后有再加吧。
exception包
定义全局的异常。异常分3种
SystemException 系统异常,直接继承RuntimeException。用于封装数据库连不上,网络出问题等状况。出现这种异常需要写入Error日志,并通知Nagios监控软件,向相关运维人员发短信或邮件报警。这种异常程序无法处理,一般需要手工干预,如重启机器等。
LogicException 逻辑异常,继承Exception。用于封装如校验失败,余额不足之类的异常。不能直接显示异常信息给用户,而是需要catch住,进行处理。
UserException 属于用户输入所导致的异常。不需要catch,可以直接返回给前台显示,但是需要考虑多语言,可以将异常的key映射到多语言资源文件。
util模块
reflection包
封装一些常用的反射调用,如得到所有的静态属性,等。如果有好的第三方包,可以直接替代,待调研。
collection包
提供一些快捷的collection转换。如将string集合直接转换成class集合。直接使用guava的内部类转换方式感觉不是非常直观,所以常用的可以再此封装一层。
encoding包
提供字符集转码的工具类。