Spring Boot 配置全局日期格式转换
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 G...
使用 Spring Boot 创建 Docker Image(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() { re...
Spring Boot DevTools 的使用
参考: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> <artifactId>spring-boot-devtools</artifactId> <optional>true</optional> </d...
在K8S中实现SpringBoot零宕机发布:滚动更新、优雅停机与弹性伸缩
引言在云原生时代,保证服务的稳定性和高可用性至关重要。本文将深入探讨如何结合 Kubernetes (K8s) 与 Spring Boot,实现零宕机发布。我们将覆盖以下核心主题: 健康检查:确保流量只被路由到健康的实例。 滚动更新:平滑地升级应用,不中断服务。 优雅停机:安全地关闭应用,避免数据丢失或请求失败。 弹性伸缩:根据负载自动调整实例数量。 Prometheus 监控:收集关键指标,洞察应用性能。 配置分离:实现镜像复用,提高交付效率。 参考资料: 微信公众号文章 Stack Overflow: Actuator health endpoint returns OUT_OF_SERVICE Spring Boot Actuator: Kubernetes Probes 1. 健康检查健康检查是实现零宕机发布的基础。K8s 通过就绪探针 (Readiness Probe) 和存活探针 (Liveness Probe) 来判断应用实例是否准备好接收流量或是否需要重启。 就绪探针 (Readiness): 告诉 K8s 应用是否准备好处理请求。如果失败,K8s...
整合 Spring Boot 与 Prometheus 实现自定义监控指标
我在第二章中有介绍使用koa整合Prometheus自定义指标,这里记录下整合Springboot和Prometheus实现自定义指标 要在Spring Boot中使用Micrometer-registry-prometheus记录QPS和响应时间,可以按照以下步骤操作 Spring-boot-starter-actuatorSpringBoot中的spring-boot-starter-actuator依赖已经集成了对Micrometer的支持,其中的metrics端点的很多功能就是通过Micrometer实现的,prometheus端点默认也是开启支持的,实际上actuator依赖的spring-boot-actuator-autoconfigure中集成了对很多框架的开箱即用的API,其中prometheus包中集成了对Prometheus的支持,使得使用了actuator可以轻易地让项目暴露出prometheus端点,使得应用作为Prometheus收集数据的客户端,Prometheus(服务端软件)可以通过此端点收集应用中Micrometer的度量数据。 整合M...
Spring Framework 5 高级进阶指南:从容器、AOP到Web MVC底层原理全解析
引言Spring Framework 是 Java 开发中不可或缺的核心框架。本指南将带你深入 Spring 5 的高级主题,从核心容器的实现机制,到 AOP 的底层原理,再到 Web MVC 的处理流程,为你揭示 Spring 框架内部的精妙设计。无论你是希望巩固基础,还是渴望深入源码,本文都将为你提供一份详尽的学习路线图。 本文将涵盖以下核心内容: 容器与 Bean:深入理解 BeanFactory 与 ApplicationContext,探索 Bean 的完整生命周期。 AOP 原理:剖析 Spring AOP 的三种实现方式(ajc、agent、proxy),并深入 cglib 和 JDK 动态代理。 Web MVC 揭秘:全面解析 Spring MVC 的请求处理流程,包括参数解析、返回值处理、异常处理等核心组件。 Spring Boot 自动配置:探究 Spring Boot 自动配置的魔法,理解其背后的原理和实现。 配套源码地址: https://github.com/behappy-spring-study/spring5_study_source ...
springboot2学习笔记
转自: https://blog.csdn.net/u011863024/article/details/113667634#01SpringBoot2_18 https://blog.csdn.net/u011863024/article/details/113667946 代码地址: https://gitee.com/xiaowu_wang/springboot2 01、基础入门-SpringBoot2课程介绍 Spring Boot 2核心技术 Spring Boot 2响应式编程 学习要求-熟悉Spring基础-熟悉Maven使用 环境要求 Java8及以上 Maven 3.3及以上 学习资料 Spring Boot官网 Spring Boot官方文档 本课程文档地址 视频地址1、视频地址2 源码地址 02、基础入门-Spring生态圈Spring官网 Spring能做什么Spring的能力 Spring的生态覆盖了: web开发 数据访问 安全控制 分布式 消息服务 移动开发 批处理 … Spring5重大升级 响应式编程 内部源码设...
SpringBoot 集成 MongoDB
Spring Boot 集成 MongoDB1. 集成简介spring-data-mongodb 提供了 MongoTemplate 与 MongoRepository 两种方式访问 MongoDB。MongoRepository 操作简单,MongoTemplate 操作灵活,可以在项目中灵活结合使用。MongoRepository 的缺点是不够灵活,MongoTemplate 正好可以弥补不足。 2. 搭建开发环境2.1 初始化工程使用 Spring Initializr 快速初始化一个 Spring Boot 工程。 2.2 引入依赖修改 pom.xml: 12345678910111213141516171819202122232425262728293031323334<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-da...
Spring Boot 项目启动时初始化操作的 6 种方式
SpringBoot项目启动时初始化操作的6种方式1、监听容器刷新完成扩展点ApplicationListener<ContextRefreshedEvent>ApplicationContext事件机制是观察者设计模式实现的,通过ApplicationEvent和ApplicationListener这两个接口实现ApplicationContext的事件机制。 Spring中一些内置的事件如下: ContextRefreshedEvent:ApplicationContext 被初始化或刷新时,该事件被发布。这也可以在 ConfigurableApplicationContext接口中使用 refresh() 方法来发生。此处的初始化是指:所有的Bean被成功装载,后处理Bean被检测并激活,所有Singleton Bean 被预实例化,ApplicationContext容器已就绪可用。 ContextStartedEvent:当使用 ConfigurableApplicationContext (ApplicationContext子接口)接口中的 star...
