各位 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 查找到代码的上下文.
7384 次点击
所在节点    Java
61 条回复
dreamlike
2023-12-07 22:17:34 +08:00
👀我理解如果每个新 sb 项目都要这一套的话 是不是有个抽一个 starter 来自动配置呢?
potatowish
2023-12-07 22:24:34 +08:00
1. Logback 日志配置
2. OkHttp3 Client 及日志拦截器配置
3. CommonsRequestLoggingFilter 打印请求日志
4. Jackson ObjectMapper 自定义配置
5. Redisson 、Jedis Client 配置
6. 自定义异常、全局异常处理
wxw752
2023-12-07 23:00:47 +08:00
把之前配好的脚手架 CV 一份到新目录,然后打开...
qianzanqi
2023-12-07 23:37:37 +08:00
这些不都是应该由公司的基础组件团队提供吗,自动装配的 starter 只要引入就行了
changdy
2023-12-08 01:26:40 +08:00
@qianzanqi 但是公司的也不一定是完整的,所以我想多收集一下.

@wxw752

@dreamlike 大佬下能分享下你们掌握的吗?



其他 V 友 们.. 不要光顾着收藏啊. 可以一起分享呗.互相交流下
finalsatan
2023-12-08 08:48:14 +08:00
半路出家的 java ,现在都是用同事搭建好的脚手架,学习学习各位大佬
cnzjl
2023-12-08 09:18:15 +08:00
学到了,这就看下 CommonsRequestLoggingFilter
anakinsky
2023-12-08 09:39:08 +08:00
CommonsRequestLoggingFilter 是要自己实现的吗,我用的这个 logbook 感觉还不错
https://github.com/zalando/logbook
JerryYuan
2023-12-08 09:39:13 +08:00
当然是先创建一个 banner.txt 啦(doge
chendy
2023-12-08 09:46:15 +08:00
复制粘贴上一个项目,然后把业务代码抠掉然后 git init
写了小十年 java 才知道 CommonsRequestLoggingFilter ,以为是啥新东西,一看 since 1.2.5 ,看来还是学艺不精啊
mmdsun
2023-12-08 09:50:55 +08:00
切面统计方法耗时、日志文件格式做一些自定义
FawkesV
2023-12-08 10:03:04 +08:00
第一次知道这个 CommonsRequestLoggingFilter 学习了.
edotac
2023-12-08 10:43:35 +08:00
其实就是每个项目的公共配置呗,提一个

LOGBACK 配置标准输出日志的颜色以及长度限制,方便在容器查看
changdy
2023-12-08 11:17:10 +08:00
@anakinsky 非常简单.就配置下几个参数就好了. 好处是 spring boot 自带.完全兼容.

你这个也不错.能够打印返回信息.
changdy
2023-12-08 11:19:58 +08:00
@cnzjl
@chendy
@FawkesV 哈哈 楼上也有一个其他工具 .不过我这个是 spring boot 自带的.更方便一些 .按需选择

各位朋友也可以互相交流学习下. 说不定也有好用的工具
looveh
2023-12-08 11:30:25 +08:00
@chendy 我也是第一次知道,以前都是用 aop 做的😂
cp19890714
2023-12-08 11:31:16 +08:00
只需要依赖自己写的 base-pom 和 common 就完事了, common 包含以下模块.
common-core 用于任意 java 项目的依赖.
common-spring 用于 spring 项目的依赖
common-mvc 用于 spring-mvc 项目的依赖.
common-webflux 用于 webflux 项目的依赖
common-micro-service 任何 springcloud 项目可以依赖.
common-config 任何 springboot 项目可以依赖, 主要使用的通常配置项 和 配置文件都在里面了. 例如 log4j2 配置文件.
whoami9426
2023-12-08 11:59:16 +08:00
分环境打印接口出入参,耗时
MDC 添加操作人信息
分环境打印 SQL 执行语句,耗时
未捕获异常结合 git blame @提交人 告警到钉钉群处理
bill110100
2023-12-08 12:17:20 +08:00
第一次知道 CommonsRequestLoggingFilter 打印请求 ,我之前都是配置 springboot 的配置项 spring:mvc:
log-request-details: true ,打印 org .springframwork.web 下的 trace 级别日志就能自动把请求和返回的信息全序列化到日志里
siweipancc
2023-12-08 13:26:05 +08:00
给用 log 过滤器的提个醒,小心文件流

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

https://www.v2ex.com/t/998488

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

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

© 2021 V2EX