和各位大佬交流下 .如果你们新建一个项目 会做那些初始化工作 . 我先说我的吧.
1
dreamlike 2023-12-07 22:17:34 +08:00 via Android
👀我理解如果每个新 sb 项目都要这一套的话 是不是有个抽一个 starter 来自动配置呢?
|
2
potatowish 2023-12-07 22:24:34 +08:00 via iPhone 2
1. Logback 日志配置
2. OkHttp3 Client 及日志拦截器配置 3. CommonsRequestLoggingFilter 打印请求日志 4. Jackson ObjectMapper 自定义配置 5. Redisson 、Jedis Client 配置 6. 自定义异常、全局异常处理 |
3
wxw752 2023-12-07 23:00:47 +08:00
把之前配好的脚手架 CV 一份到新目录,然后打开...
|
4
qianzanqi 2023-12-07 23:37:37 +08:00
这些不都是应该由公司的基础组件团队提供吗,自动装配的 starter 只要引入就行了
|
5
changdy OP |
6
finalsatan 2023-12-08 08:48:14 +08:00
半路出家的 java ,现在都是用同事搭建好的脚手架,学习学习各位大佬
|
7
cnzjl 2023-12-08 09:18:15 +08:00
学到了,这就看下 CommonsRequestLoggingFilter
|
8
anakinsky 2023-12-08 09:39:08 +08:00
CommonsRequestLoggingFilter 是要自己实现的吗,我用的这个 logbook 感觉还不错
https://github.com/zalando/logbook |
9
JerryYuan 2023-12-08 09:39:13 +08:00 via Android 9
当然是先创建一个 banner.txt 啦(doge
|
10
chendy 2023-12-08 09:46:15 +08:00
复制粘贴上一个项目,然后把业务代码抠掉然后 git init
写了小十年 java 才知道 CommonsRequestLoggingFilter ,以为是啥新东西,一看 since 1.2.5 ,看来还是学艺不精啊 |
11
mmdsun 2023-12-08 09:50:55 +08:00
切面统计方法耗时、日志文件格式做一些自定义
|
12
FawkesV 2023-12-08 10:03:04 +08:00
第一次知道这个 CommonsRequestLoggingFilter 学习了.
|
13
edotac 2023-12-08 10:43:35 +08:00
其实就是每个项目的公共配置呗,提一个
LOGBACK 配置标准输出日志的颜色以及长度限制,方便在容器查看 |
14
changdy OP |
15
changdy OP |
17
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 配置文件. |
18
whoami9426 2023-12-08 11:59:16 +08:00 1
分环境打印接口出入参,耗时
MDC 添加操作人信息 分环境打印 SQL 执行语句,耗时 未捕获异常结合 git blame @提交人 告警到钉钉群处理 |
19
bill110100 2023-12-08 12:17:20 +08:00
第一次知道 CommonsRequestLoggingFilter 打印请求 ,我之前都是配置 springboot 的配置项 spring:mvc:
log-request-details: true ,打印 org .springframwork.web 下的 trace 级别日志就能自动把请求和返回的信息全序列化到日志里 |
20
siweipancc 2023-12-08 13:26:05 +08:00 via iPhone 2
给用 log 过滤器的提个醒,小心文件流
|
21
Martin9 2023-12-08 14:06:23 +08:00
CommonsRequestLoggingFilter 好像不能记录 response ,有啥能 request ,response 一起记的么
|
22
potatowish 2023-12-08 14:08:28 +08:00 via iPhone
@siweipancc setIncludePayload to false, or try setMaxPlayloadLength
|
23
dif 2023-12-08 14:11:36 +08:00 1
只有我一个人先改 banner 吗? 手动狗头
|
24
DdDddDlush 2023-12-08 14:33:12 +08:00
想白嫖一个脚手架
|
25
changdy OP @DdDddDlush 哈哈 我也是像白嫖一个..看能有那些进行设置的.
|
26
zhenjiachen 2023-12-08 15:36:11 +08:00
我也第一次知道 CommonsRequestLoggingFilter ,学到了
|
27
xuanbg 2023-12-08 15:53:02 +08:00
打开旧项目,复制 application.yml 和 common 目录到新项目
|
28
imkku 2023-12-08 16:00:52 +08:00
|
29
SnowHall 2023-12-08 16:12:15 +08:00 1
@DdDddDlush 推荐 ruoyi-vue-plus 。
|
30
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 的配置(约定) |
31
LiaoMatt 2023-12-08 16:31:59 +08:00
没用过 CommonsRequestLoggingFilter, 但是我现在检查方法入参出参都用 arthas
|
32
LiaoMatt 2023-12-08 16:37:16 +08:00
没用过 CommonsRequestLoggingFilter, 但是我现在检查方法入参出参都用 arthas 实时看
|
33
changdy OP @LiaoMatt 卧槽 大兄弟你这有点懵猛啊. 不过主要是不同的工具 .arthas 只能看最后转换的实体类 但是 filter 是为了看原始的数据 .
|
35
Greendays 2023-12-08 16:53:16 +08:00
建完项目后一脸懵逼,点开以前的项目参考目录结构。。。
|
36
litchinn 2023-12-08 17:15:23 +08:00
配置日志,配置数据库,配置 security ,配置 jackson ,配置 redis ,写个 Dockerfile ,引入一些 spring initializr 中没有的包
如果能自己改造下 spring initializr 或者用模板引擎搞一个生成器,那么可以啥也不做 |
37
Bingchunmoli 2023-12-08 17:37:54 +08:00 via Android
尝试做了点,但是还是比直接写有点难的。https://github.com/BingChunMoLi/quick
|
38
mgzu 2023-12-08 18:17:10 +08:00
@Bingchunmoli 没有单测和集成测试诶
|
39
Bingchunmoli 2023-12-08 18:32:02 +08:00 via Android
@mgzu 公司没有做测试的经验,只能自己摸索着写,https://github.com/bingchunmoli/moliapi. 这个写了但是出现了一些问题,影响打包了,
|
40
youngPacce 2023-12-08 19:48:45 +08:00 via Android
long 转 string 是为啥?
|
41
oneisall8955 2023-12-08 20:06:21 +08:00 via Android
@358343917 精度问题,前端 19 位后面全是 0
|
42
mgzu 2023-12-08 20:25:54 +08:00 1
@Bingchunmoli 我是看 spring boot commit 来学习 unit test 写法。单测和 ci cd 对框架来说更重要,比如升级依赖版本后,框架层的设计可能就不能按预期工作
|
43
Bingchunmoli 2023-12-08 22:48:55 +08:00 via Android
@mgzu 可能更多情况是有其他人用非自己用能遇到问题或者角度或许才能考虑到一些事情和一些动力来源,
|
44
sunny2580839896 2023-12-09 07:38:49 +08:00 via Android
我用若依,你说什么我不知道
|
45
changdy OP @sunny2580839896 哈哈 本来我是想让大家讨论下 众人拾柴. 不过可能大家都比较害羞.
|
46
dongci777 2023-12-10 02:43:06 +08:00
学会写 starter ,然后把项目经常使用的操作封装成一个 starter 放在自己的私服下面,然后直接每次项目引入就好了,像你这样不得每次累死,而且还容易漏
|
47
fjdingsd 2023-12-10 08:42:33 +08:00
我好奇,大家会滥用 @PostConstruct 注解吗?
|
50
jaylee4869 2023-12-10 12:39:59 +08:00
swagger openapi
actuator endpoint |
51
cxk0 2023-12-10 16:18:04 +08:00
这个帖子早该出来了~ 太帅了!逐条拜读,并做记录。 谢谢各位大佬!
|
52
DdDddDlush 2023-12-11 12:58:10 +08:00
@SnowHall 先感谢回复。作为脚手架个人感觉比较重。也可能是我自己水平不行不太会剥离,想要一点更轻量的。
|
53
simanW 2023-12-13 01:02:36 +08:00
楼主能提供个 demo 吗?感觉你这个初始化工作看着挺不错的
|
54
changdy OP @simanW 我周末整理一下吧...同时我也在知乎 问问 ..然后也去掘金尝试抛砖引玉 .看看有没有人一起完善这种比较使用的方法/类/配置
|
55
ccmjga 2023-12-18 21:41:31 +08:00
https://www.v2ex.com/t/1001297#reply2
如果可以接受这个技术栈的话,可以上面这个脚手架。大家关心的测试、代码质量、工程结构等在脚手架中都有体现。 一些做法大家也可参考这个脚手架的实现。 @wxw752 @potatowish @changdy @finalsatan @DdDddDlush @mgzu @Bingchunmoli @mgzu @fjdingsd @simanW |
57
anakinsky 350 天前
@RotJun 依赖加进去就行啦,配置按需
``` <dependency> <groupId>org.zalando</groupId> <artifactId>logbook-spring-boot-starter</artifactId> <version>${logbook.version}</version> </dependency> ``` |
60
liuqitoday 334 天前
@changdy #54 楼主整理好了么 希望学习以下
|
61
shiloh595 158 天前
学习一下👍
|