|
|
4 years ago | |
|---|---|---|
| fw-sample-admin | 5 years ago | |
| fw-sample-api | 5 years ago | |
| fw-sample-job | 5 years ago | |
| fw-sample-mqc | 5 years ago | |
| fw-sample-portal | 5 years ago | |
| fw-sample-rpc | 5 years ago | |
| fw-sample-service | 5 years ago | |
| .DS_Store | 5 years ago | |
| .gitignore | 5 years ago | |
| README.md | 4 years ago | |
| pom.xml | 5 years ago |
项目代码的结构仁者见仁智者见智,没有特定的规范,更加没有银弹,只有合适不合适!
首先module的组成:
fw-sample-admin
fw-sample-api
fw-sample-job
fw-sample-mqc
fw-sample-portal
fw-sample-rpc
fw-sample-service
所有业务都集中在了service module中;通过包名区分功能边界;
admin/portal组成后台管理系统;
api作为客户端服务接口提供方和rpc的服务提供方;
rpc作为服务提供方的对外共享包;
mqc作为消息队列的消费方启动(可放在api中);
job作为独立的任务服务;
portal方案是参考的免费小说项目作为基础结构;
下面是包的具体说明:
com.mokasz.fw.admin
controller //Api controller
AdminApplication //Api启动类
resources //资源文件
com.mokasz.fw.api //针对小程序端,和RPC服务端
controller //Api controller
ApiApplication //Api启动类
resources //资源文件
com.mokasz.fw.job
controller //Job controller
JobApplication //Job启动类
resources //资源文件
com.mokasz.fw.job
MqcApplication //Mqc启动类
resources //资源文件
com.mokasz.fw.rpc
query //rpc 请求对象
vo //rpc返回对象
com.mokasz.fw
api //接口api
query //请求视图对象
vo //返回视图对象
admin //后台api & vue
query //请求视图对象
vo //返回视图对象
common //通用层
bean //spring bean
config //configruation
aspect //切面逻辑
context //上下文
enums //枚举
constant //常量
util //工具类
ds //数据源
convert //map struct
event //spring application event
exception //自定义异常
interceptor //拦截器
properties //配置项对象
model //通用模型
filter //过滤器
vm //velocity模板文件
lib //(复杂业务、领域业务处理)
model //领域层对象
manager //(二方、三方包封装)
mq //(消息消费、发送)
listener //消息监听
producer //消息生产
job //(任务调度相关)
rpc.impl //dubbo rpc 实现
service //业务层
dto //业务层对象
impl //业务层实现
mapper //持久层
xml //mybatis xml
entity //持久层对象
https://gitee.com/baomidou/dynamic-datasource-spring-boot-starter
Controller上加上该注解由框架封装ApiResponse
该上下文提供了xxl sso的用户信息
防重复提交 使用注解 @AvoidDuplicateSubmit
为什么必须: 明确数据来源,当你看到Query的时候,就可以很明确的知道它是来自接口入参,其他同理;
为什么不接口复用:通过字段区分不同功能,然后if else 它看起来就复用了吗? 职责单一才能复用。