/cube-project

工程示例

Primary LanguageJava

cube基础工程脚手架

package分层

UserController OrderController PayController

该层有统一的RequestBody和ResponseBody的切面操作,主要用于请求报文解密和响应报文加密

UserService MemeberService GoodsService StockService

GlobalManager(Cache,ExternalSystem Interface)

Manager层编写规范

saveXXX,返回int,标明该方法影响的行数;传参对象实体或List

deleteXXX,返回int,标明该方法影响的行数;传参具体条件

updateXXX,返回int,标明该方法影响的函数;传参对象实体

getXXX,返回对象实体或List;传参具体条件

按照上述规范的方法可以加缓存注解进行统一缓存处理,List暂不做缓存处理,不满足上述规范的方法未必可行

缓存统一处理逻辑,参照MyCacheInterceptor

Manager层收口,也是为了后续数据层操作管控提前做好准备

MYSQL DAO层使用了tk.mybatis,常用语句封装完善,只需要自定义复杂SQL即可, 具体参照com.cube.mapper.PhoenixUserMapper

接口层参数校验

参照com.cube.controller.UserController

多个线程池

参照com.cube.thread.ThreadPoolConfig的多个线程池定义

轻量级定时任务

参照com.cube.task.MyTask

异步调用

参照com.cube.event.MyEventListener--@Async

AOP自定义切面

参照com.cube.cache.MyCacheInterceptor(统一缓存操作)

前后端交互统一数据格式

参照com.cube.pojo.MyResp,com.cube.pojo.Resp

自定义配置加载

参照com.cube.config.MyConfig

基于redis的分布式锁

参照com.cube.task.MyTask--@SchedulerLock

MOCK单元测试

参照test package

Swagger API

参照com.cube.controller.UserController

常用工具 hutool,common-lang3

工程打包

通过pom+assembly打出zip,解压后的目录参照开源软件常规目录形式

xxx.zip

bin 工程启停脚本

config 工程应用配置,日志配置

lib 工程依赖

xxx.jar 工程执行jar包

banner.txt 自定义启动字符画

运维标准目录

按照公司运维标准,把zip包放到/apprun根目录下解压后运行即可

clone该工程后,需要修改cube-project名字的文件如下

pom.xml

assembly.xml

bin/log_clean.sh

bin/processor_check.sh

bin/start.sh

bin/stop.sh

启动命令

nohup sh bin/start.sh >/dev/null 2>&1 &

未完待续...