SpringBoot整合Redis多数据源
基于配置文件 实现 redis 动态数据源和动态数据库的切换 MultiRedisConnectionFactory123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118import org.springframework.beans.factory.DisposableBean;import org.springframework.beans.factory.InitializingBean;import org.springframework.dao.DataAccessException;import...
Springboot获取resources目录资源文件的9种方法
参考:https://developer.aliyun.com/article/1346532 Springboot 获取 /resources 目录资源文件的 9 种方法 测试方法 - 根据文件路径按行读取文件内容12345678910111213141516171819202122/** * 根据文件路径按行读取文件内容 * * @param fileInPath * @throws IOException */public static void getFileContent(Object fileInPath) throws IOException { BufferedReader br = null; if (fileInPath == null) { return; } if (fileInPath instanceof String) { br = new BufferedReader(new FileReader(new File((String)...
SpringBoot配置全局日期格式转换
SpringBoot 设置后台向前台传递 Date 日期格式在 SpringBoot应用中,@RestController 注解的 json 默认序列化中,日期格式默认为:2020-12-03T15:12:26.000+00:00 类型的显示 在实际显示中,我们需要对其转换成我们需要的显示格式 方式一:配置文件修改配置文件配置 application.yml 12345spring: # 配置日期格式化 jackson: date-format: yyyy-MM-dd HH:mm:ss #时间戳统一转换为指定格式 time-zone: GMT+8 # 时区修改为东8区 application.properties 配置方式 12spring.jackson.date-format=yyyy-MM-dd HH:mm:ss #时间戳统一转换为指定格式spring.jackson.time-zone=GMT+8 # 时区修改为东8区 这里需要修改时区 time-zone:数据库默认时区是格林尼治的时间,如果不设置,会比实际时间少 8...
GraalVM在windows上的环境搭建
前言 GraalVM是一个高性能、云原生、支持多种语言的虚拟机。 GraalVM环境搭建分为两步: 1、下载配置GraalVM和下载native-image。 2,下载配置windows sdk和msvc。 GraalVM下载配置GraalVM 进入到 GitHub 上的 GraalVM 发布存储库。选择适用于 Windows 的基于 Java 11、17 或 19 的发行版,然后下载。我选择的是java17-22.3.0的。 将目录更改为要安装 GraalVM 的位置,然后将.zip存档文件移动到该目录。我这里是放在D:\JDK 将存档解压缩到文件系统。例如D:\JDK 配置环境变量12GRAALVM_HOME=D:\JDK\graalvm-ce-java17-22.3.0JAVA_HOME=D:\JDK\graalvm-ce-java17-22.3.0 验证1234D:\testNative>java -versionopenjdk version "17.0.5" 2022-10-18OpenJDK Runtime Environment...
使用SpringBoot创建DockerImage(layers分层的使用)
简介在Spring Boot 2.3以前,我们创建Spring Boot - docker image最通用的办法就是将Spring boot的应用程序打包成一个fat jar,然后写一个Dockerfile,将这个fat jar制作成为一个docker image然后运行。 在Spring Boot 2.3发布后,附带了快速创建docker image的功能 传统做法和它的缺点首先创建一个非常简单的Spring Boot程序: 12345678910111213@SpringBootApplication@RestControllerpublic class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } @GetMapping("/getInfo") public String getInfo() { ...
SpringBoot(2.x)devtools的使用
:https://blog.csdn.net/renpeng301/article/details/124596782 参考:https://blog.csdn.net/renpeng301/article/details/124596782 Spring Boot DevTools 2.x(IDEA 热部署&远程调试&LiveReload)前言Spring Boot包括一组额外的工具,它们可以使应用程序开发体验更加方便。spring-boot-devtools模块可以包含在任何项目中,以提供额外的开发时特性。要包含devtools支持,请将模块依赖添加到你的项目中,如下面的Maven和Gradle清单所示: Maven 1234567<dependencies> <dependency> <groupId>org.springframework.boot</groupId> ...
SpringBoot+LogBack+MDC实现链路追踪
MDC介绍MDC(Mapped Diagnostic Context,映射调试上下文)是 log4j 、logback及log4j2 提供的一种方便在多线程条件下记录日志的功能。MDC 可以看成是一个与当前线程绑定的哈希表,可以往其中添加键值对。MDC 中包含的内容可以被同一线程中执行的代码所访问。当前线程的子线程会继承其父线程中的 MDC 的内容。当需要记录日志时,只需要从 MDC 中获取所需的信息即可。 API说明: clear() => 移除所有MDC get (String key) => 获取当前线程MDC中指定key的值 getContext() => 获取当前线程MDC的MDC put(String key, Object o) => 往当前线程的MDC中存入指定的键值对 remove(String key) => 删除当前线程MDC中指定的键值对...
SpringBoot+K8S中的滚动发布、优雅停机、弹性伸缩、应用监控、配置分离
参考: https://mp.weixin.qq.com/s/D8efjj9ZhLyEu7zEqWvJiQ https://stackoverflow.com/questions/71860152/actuator-health-endpoint-returns-out-of-service-when-all-groups-are-up https://docs.spring.io/spring-boot/docs/2.6.x/reference/htmlsingle/#actuator.endpoints.kubernetes-probes 本文使用 K8s + SpringBoot 实现零宕机发布:健康检查 + 滚动更新 + 优雅停机 + 弹性伸缩 + Prometheus监控 + 配置分离(镜像复用) 配置健康检查 健康检查类型:就绪探针(readiness)+ 存活探针(liveness) 探针类型:exec(进入容器执行脚本)、tcpSocket(探测端口)、httpGet(调用接口) 业务层面项目依赖...