3 Star 3 Fork 0

于新海 / sc-template

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

一.工程说明

该工程是一个多模块标准模板,用于指导脚手架及代码生成器。以及集成所需的中间件件Demo。

base/common

该项目会移除脚手架,单独建仓库并上传到私服,各应用引入即可。

二. 基本原则

- 如果有多个模块, 参考 admin 结构创建。
- 产品本身没有更改数据库的要求,利用 MybatisPlus本身的优点,尽量不使用对象方式操作复杂的Sql,直接写Sql。
- 使用 Lombok 简化开发。

@Autowired 警告

- 针对 @Autowired 警告,改用 @RequiredArgsConstructor,对Bean添加 @NotNull 注解
- 

MybatisPlus生成器

代码生成器在 config test 中。

- 模块的实体, 放入相应的 entity
- 模块的 Service,Mapper 放到模块api
- 默认生成的 Controller 是空类文件。缺少CRUD。按项目的最佳实践手工补充。

三. 最佳实践

日志

系统请求日志

有三个地方:

  • Nginx反向代理:建议,性能最高;比较集中,一般只有一个Nginx入口;使用FileBeat传输到Es
  • 网关Gateway: 如果是一级网关,也比较集中,用 FileBeat把日志传输到Es。
  • 各应用:比较分散,不建议。

业务日志

各各应自行实现,实现过程(用RabbitMq实现削峰):

准备:

1. 每个产品线定义一个编码 code
2. Mq创建 VirtualHost = code ,实现Mq数据隔离。
3. 每个产品线启动一个消费者(固定微服务),负责把把 VirtualHost=code 中 log 消息发送到 Es 中的 ${code}-log 索引上 (也可以对Es集群按产品线隔离)
4. 开发一个 log-sender 组件,完成把消息推送到 VirtualHost=code 中 log 队列中。

各应用开发:

1. 配置产品线code
2. 集成 log-sender
3. 调用 log-sender 组件方法,把要记录业务日志发送过去。

获取当前登录用户

Mvc接口中,直接使用 LoginUserModel

原生sql方式 和 对象查询方式 的区别

项目 原生sql方式 原生Sql方式说明 对象查询方式 对象查询方式说明
开发 开发灵活 原生方式很直接 开发工作量大 对象操作的方式非常困难。
重构 不利于重构 需要人工检查相关表及列,编译时不报错 利于重构。 更换数据库改动很少,重构编译会报错。

空文件

简介

spring cloud template,标准项目模板。 脚手架的模板,用代码生成器,生成大部分通用代码。包含常用中间件的Demo。 展开 收起
Java
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
Java
1
https://gitee.com/imnewsea/sc-template.git
git@gitee.com:imnewsea/sc-template.git
imnewsea
sc-template
sc-template
master

搜索帮助