各位 V 友们 , 你们创建 Spring Boot 项目之后会做那些初始化工作?

2023-12-07 21:53:53 +08:00
 changdy

和各位大佬交流下 .如果你们新建一个项目 会做那些初始化工作 . 我先说我的吧.

  1. 做好 mdc 上下文以及自定义日志配置.
  2. 异步线程池&定时任务设置好配置
  3. 自定义异常&异常处理器
  4. json 序列化配置 , long 类型转 string
  5. 引入 CommonsRequestLoggingFilter 打印请求,非常好用推荐
  6. 针对 dubbo 的话可以进行一个 filter 打印请求和返回情况
  7. 如果 mysql 上有死锁 , 考虑加个自定义的事务监听, 统计事务耗时 ,加 mybatis sql 拦截器 ,手动加个 mdc,方便根据 sql 中的 mdc 查找到代码的上下文.
7807 次点击
所在节点    Java
61 条回复
Martin9
2023-12-08 14:06:23 +08:00
CommonsRequestLoggingFilter 好像不能记录 response ,有啥能 request ,response 一起记的么
potatowish
2023-12-08 14:08:28 +08:00
@siweipancc setIncludePayload to false, or try setMaxPlayloadLength
dif
2023-12-08 14:11:36 +08:00
只有我一个人先改 banner 吗? 手动狗头
DdDddDlush
2023-12-08 14:33:12 +08:00
想白嫖一个脚手架
changdy
2023-12-08 15:17:34 +08:00
@DdDddDlush 哈哈 我也是像白嫖一个..看能有那些进行设置的.
zhenjiachen
2023-12-08 15:36:11 +08:00
我也第一次知道 CommonsRequestLoggingFilter ,学到了
xuanbg
2023-12-08 15:53:02 +08:00
打开旧项目,复制 application.yml 和 common 目录到新项目
imkku
2023-12-08 16:00:52 +08:00
SnowHall
2023-12-08 16:12:15 +08:00
@DdDddDlush 推荐 ruoyi-vue-plus 。
nullable
2023-12-08 16:25:21 +08:00
公司我都已经封装成一个个 starter 了,比如 xxx-cloud-web-starter 封装了:MDC 配置、统一日志、ObjectMapper ( long 转 string 、java.time API 、not null )、LoggingRequest (忽略 file ,LoggingResposne (打印部分)、自定义异常、全局异常处理、Redisson 、Nacos 。
其它的也基本上封装了,比如 mybatis 统一路径,扩展 Mapper 、xxljob 自动装配等、简化 application 的配置(约定)
LiaoMatt
2023-12-08 16:31:59 +08:00
没用过 CommonsRequestLoggingFilter, 但是我现在检查方法入参出参都用 arthas
LiaoMatt
2023-12-08 16:37:16 +08:00
没用过 CommonsRequestLoggingFilter, 但是我现在检查方法入参出参都用 arthas 实时看
changdy
2023-12-08 16:50:47 +08:00
@LiaoMatt 卧槽 大兄弟你这有点懵猛啊. 不过主要是不同的工具 .arthas 只能看最后转换的实体类 但是 filter 是为了看原始的数据 .
LiaoMatt
2023-12-08 16:52:19 +08:00
@changdy 原始数据,如果不是 https, 我之前都是用 wireshark 看- -
Greendays
2023-12-08 16:53:16 +08:00
建完项目后一脸懵逼,点开以前的项目参考目录结构。。。
litchinn
2023-12-08 17:15:23 +08:00
配置日志,配置数据库,配置 security ,配置 jackson ,配置 redis ,写个 Dockerfile ,引入一些 spring initializr 中没有的包

如果能自己改造下 spring initializr 或者用模板引擎搞一个生成器,那么可以啥也不做
Bingchunmoli
2023-12-08 17:37:54 +08:00
尝试做了点,但是还是比直接写有点难的。https://github.com/BingChunMoLi/quick
mgzu
2023-12-08 18:17:10 +08:00
@Bingchunmoli 没有单测和集成测试诶
Bingchunmoli
2023-12-08 18:32:02 +08:00
@mgzu 公司没有做测试的经验,只能自己摸索着写,https://github.com/bingchunmoli/moliapi. 这个写了但是出现了一些问题,影响打包了,
youngPacce
2023-12-08 19:48:45 +08:00
long 转 string 是为啥?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://tanronggui.xyz/t/998488

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX