线上排查问题时,常见的几个灵魂拷问: “这台机器上的 JAR 到底是不是最新的?” “现在跑的是哪个版本?” “这个版本对应哪次 Git 提交?” 如果我们能在应用启动时,就统一打印出“构建时间 + 版本号 + Git commit 信息”,排查问题会轻松很多。 本文基于 Spring Boot 的能力,给出一个比较优雅的实现方案: 利用 spring-boot-maven-plugin 生成 build-info 可选地利用 git-commit-id-plugin 写入 Git 提交信息 启动时从类路径里读取 …

2026-01-01 0条评论 29点热度 0人点赞 admin 阅读全文

在SpringBoot3项目中,集成knife4j,pom.xml 如下: <dependency> <groupId>com.github.xiaoymin</groupId> <artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId> <version>4.4.0</version> </dependency> 访问http://loca…

2025-05-11 0条评论 1134点热度 0人点赞 admin 阅读全文

因为Swagger配置引起的Springboot3拦截器不生效,检查SwaggerConfig.java: @Configuration @ConditionalOnProperty(name = "springdoc.enabled", havingValue = "true", matchIfMissing = true) public class SwaggerConfig extends WebMvcConfigurationSupport { @Bean public OpenAPI customOpen…

2025-03-27 0条评论 1820点热度 0人点赞 admin 阅读全文

在使用MybatisPlus开发的时候,在执行添加功能的时候,使用MP的id生成策略(ASSIGN_ID)生成的id是一个很长的long类型的数字。数字长其实还没事,问题是我后端返回的那串数字和前端拿到的数据不一致,前端axio请求后,ID后面几位的是00 经过研究,MyBatis-Plus 的 ASSIGN_ID 策略使用雪花算法生成一个 19 位的 Long 类型数值。当这个数值传到前端时,由于超过了 JavaScript 中数字的最大范围,导致最后两位始终为 0。 第一种方案是,在每个实体类的ID字段上加注解…

2024-11-27 0条评论 1677点热度 0人点赞 admin 阅读全文

SpringBoot项目中使用lombok后起动报错: java: java.lang.NoSuchFieldError: Class com.sun.tools.javac.tree.JCTree$JCImport does not have member field 'com.sun.tools.javac.tree.JCTree qualid' 解决办法: 兼容性问题,使用1.8.24以后的版本即可,有时候项目的pom中并没有指定lombok的版本,改成如下: <dependency> <g…

2024-10-02 0条评论 1752点热度 0人点赞 admin 阅读全文

Java或者SpringBoot程序启动的时候,需要export LD_LIBRARY_PATH,还需要使用参数:-Djava.library.path export LD_LIBRARY_PATH="/path/to/library" java -Djava.library.path=/path/to/library some_jar.jar Linux环境下,加载so库的Java代码: System.loadLibrary("libname"); 以上代码中注意libname是库的名字,如果文件是libopen…

2024-07-03 0条评论 1546点热度 0人点赞 admin 阅读全文

有时候在Controller中要redirect跳转到某一个地址,例如: @RequestMapping(value = "/somepath") public String somePath(HttpSession session) { User user = (User) session.getAttribute("user"); if (user != null) { return "someView"; } return "redirect:/login"; } // or @RequestMapping(…

2023-08-05 0条评论 1376点热度 0人点赞 admin 阅读全文

IDEA下maven项目打包SpringBoot应用程序,出现如下错误: org/springframework/boot/maven/RepackageMojo has been compiled by a more recent version of the Java Runtime (class file version 61.0), 查的解决办法,记录如下,供参考 修改pom.xml,相关注意点如下: <build> <plugins> <plugin> <grou…

2023-06-11 0条评论 1690点热度 0人点赞 admin 阅读全文

默认情况下SpringBoot的stringRedisTempalte只能存string,redisTemplate如果存入bytes也会报错,是因为找不到相应的ValueSerializer,或者用默认的StringRedisSerializer来序列化,导致bytes无法转成String而报错。 我们可以在Redis的配置文件下,指定相应的ValueSerializer。 RedisConfiguration.java的配置如下: import org.springframework.context.annot…

2023-03-08 0条评论 2298点热度 0人点赞 admin 阅读全文

简单使用 Java API规范(JSR303)定义了Bean校验的标准validation-api,但没有提供实现。hibernate validation是对这个规范的实现,并增加了校验注解如@Email、@Length等。Spring Validation是对hibernate validation的二次封装,用于支持spring mvc参数自动校验。接下来,我们以spring-boot项目为例,介绍Spring Validation的使用。 引入依赖 如果spring-boot版本小于2.3.x,spring…

2022-12-30 0条评论 1681点热度 0人点赞 admin 阅读全文
123459