博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
分布式轻量级框架 设计&实现 3 - 定义基础包
阅读量:7194 次
发布时间:2019-06-29

本文共 802 字,大约阅读时间需要 2 分钟。

hot3.png

这部分的代码在

创建一个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包

提供字符集转码的工具类。

转载于:https://my.oschina.net/u/719192/blog/169325

你可能感兴趣的文章
mysql编译安装完成后,启动时报错The server quit without updating PID file
查看>>
MySQL 错误总结续
查看>>
Nginx并发连接限制
查看>>
BGP的状态
查看>>
javascript声明二维数组
查看>>
ssh 操作 esxi 基本命令
查看>>
微软携手均衡科技提供箱包行业ERP解决方案
查看>>
批量自动安装常用软件
查看>>
在Ubuntu上,使用SWT嵌入AWT/SWING代码导致Eclipse崩溃问题
查看>>
Mysql 的一些优化 (MyISAM和InnoDB)
查看>>
Linux中特殊符号的用法
查看>>
2.5-ls命令
查看>>
1.1-php编译安装
查看>>
记华为S5700S-28P-LI-AC一次重写VRP的经历
查看>>
Varnish的简单使用
查看>>
OGG运维优化脚本(十四)-信息同步类--定义文件自动下发
查看>>
策略模式
查看>>
字符设备(二)
查看>>
Linux TC的ifb原理以及ingress流控
查看>>
SSDT 结构体
查看>>