开发者学堂课程【RocketMQ 知识精讲与项目实战(第二阶段):项目公共类介绍】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/703/detail/12408
项目公共类介绍
内容介绍:
一、ID 生成器
二、异常处理类
三、常量类
四、响应实体类
五、总结
一、ID 生成器
ID 目前数据库当中 ID 的生成策略并没有直接使用自增策略进行一个生成,而是在程序当中直接控制,这么做的原因是为了以后如果数据库的表进行封库封表,如果让这个数据库自己生成主键,那么分到两个数据库当中的表,他们如果数据库都是自增的,那么这个主键有可能会重复,那么在这里使用一个专门 ID 生成器去进行一个 ID 的生成。
这里的 ID 生成器选用是 Twitter 公司所开发的雪花算法,用它去作为一个ID 的生成。
在 com 当中有一个 utils,这里面有 ID 生成器整个所有的代码。ID 生成器为什么要用它?
一个是因为它比较简单,去用这个 ID 生成器基本上不需要导入第三方的依赖,第二个是它的ID 生成器生出来的 ID 还是有规律的,既能保证不重复,也能够保证它的一个内部的规律。
这里面提供了一个论方法,直接运行看效果。这是当前生成的一个 ID 的值
这些值没有重复的,而且有个顺序,这个可以很方便的进行排序,这是第一个公共的类。Twitter 公司所开发的 ID 生成器即雪花算法生成 ID 生成器。
二、异常处理类
统一的都是通过 exception 当中的 CastException 去进行一个抛出,如果要进行异常抛出,就不用随处 throw new 用这种方式去抛出,直接通过 CastExecption 当中的近态方法去抛出,然后抛出的异常是一个自定义的异常,去创建一类继承一个 Runtime 运行 RuntimeException 运行的异常类,在这里面进行一个异常的抛出,这是这两个类的说明。
下面还有一个类是 ShopCode,当前抛出异常。异常信息传递过来,传递过来的信息为了统一管理起来,把它都管理到每举类当中,对于开发的来说其实不用在业务代码当中去设置这个异常的内容,只需要调用每举类当前的常量。
针对当前每一模块常见的异常都会有一个位置,从里面进行一个调用。
三、常量类
ShopCode 是一个系统状态类,管理的是一些常量,用每举类的方式进行管理。
四、响应实体类
对于响应来说,在外部层接收到这个请求之后统一给用户享用数据当中,要去包含一个状态码以及当前提示的信息,这个里边如果所有的响应去做这两个信息处理,何不如把这两个信息都放在一个公共类当中,这个类里边有两个属性,一个是处理的成功与失败理性的变量,这是一个响应的处理类,当然在里面可以加入一个状态 Code。
例如用 true 或 false 代表当前一个响应的结果。而 message 是一个响应的内容。
五、总结
这些是在进行项目开发的时候会用到的几个类。
其中第一个是 ID 生成器是 ID 生成的雪花算法类法;第二个是异常相关的两个类,一个是自定义异常,另一个是异常抛出类;第三个是管理所有常量的类,这里边是一个每举类;第四个是响应实体类,注意响应实体类主要是在外部层对客户的响应,也都要包含响应的状态和响应的内容,可以去返回同意Result。