Spring Boot 如何热加载jar实现动态插件?

一、背景 动态插件化编程是一件很酷的事情,能实现业务功能的 解耦 便于维护,另外也可以提升 可扩展性 随时可以在不停服务器的情况下扩展功能,也具有非常好的 开放性 除了自己的研发人员可以开发功能之外,也能接纳第三方开发商按照规范开发的插件。 常见的动态插件的实现方式有 SPI 、 OSGI 等方案,由于脱离了 Spring IOC…

hello hello 发布于 2023-12-22

Spring Boot 集成 Groovy 脚本

在我们的应用中引入脚本能力,可以很好的提升灵活性,我们的核心开发工作可以集中在核心平台能力的开发上,具体场景的功能可以通过脚本来实现,例如jenkins就可以通过groovy脚本来编写pipeline,可以很灵活的定制构建过程。…

hello hello 发布于 2023-12-13

Spring 使用 Kafka 的三种方式

本文介绍spring中使用Kafka的三种方式,其中container方式最灵活,但是开发相对较复杂,stream方式使用最简便,listener方式由于提供的最早,使用的较普遍。 具体的代码参照 示例项目 https://github.com/qihaiyan/springcamp/tree/master/spring-kafka 一、概述…

hello hello 发布于 2023-12-13

Spring Cache 自定义 resolver,增强@Cache注解的能力

本文介绍spring中自定义缓存resolver,通过自定义resolver,可以在spring的cache注解中增加附加处理。 具体的代码参照 示例项目 https://github.com/qihaiyan/springcamp/tree/master/spring-redis-resolver 一、概述 cache-…

hello hello 发布于 2023-12-12

Spring Cloud Gateway 动态转发后端服务

API网关的核心功能是统一流量入口,实现路由转发,SpringCloudGateway是API网关开发的技术之一,此外比较流行的还有Kong和ApiSix,这2个都是基于OpenResty技术栈。…

hello hello 发布于 2023-12-11

Spring Boot 3 的 AOT(GraalVM Native Image)应用开发

GraalVM Native Images是一个利用AOT(Ahead-of-Time)技术把java程序直接编译成可执行程序的编译工具,编译出来的程序在运行时不再依赖JRE,同时启动速度快,资源消耗低,这对传统java程序来说都是极大的优势。同时云原生应用来说,GraalVM Native…

hello hello 发布于 2023-12-07

Spring RestTempate 打印请求和响应内容日志

系统中经常需要调用第三方接口实现业务功能,为了方便调试和定位问题,我们通常需要将接口调用参数和返回结果打印到日志文件中。在Spring项目中一般会用RestTemplate来调用第三方接口。 通过在RestTemplate调用过程中统一打印日志,可以保持代码的整洁,也可以统一日志格式,比在业务逻辑中到处打印接口调用日志要方便的多。 具体的代码参照 示例项目…

hello hello 发布于 2023-12-07

Spring中BeanFactoryPostProcessors是如何执行的

Spring中的BeanFactoryPostProcessor是在Spring容器实例化Bean之后,初始化之前执行的一个扩展机制。它允许开发者在Bean的实例化和初始化之前对BeanDefinition进行修改和处理,从而对Bean的创建过程进行干预和定制化。…

hello hello 发布于 2023-12-02

Kafka 如何保证消息消费的全局顺序性

哈喽大家好,我是咸鱼 今天我们继续来讲一讲 Kafka 当有消息被生产出来的时候,如果没有指定分区或者指定 key ,那么消费会按照【轮询】的方式均匀地分配到所有可用分区中,但不一定按照分区顺序来分配 我们知道,在 Kafka 中消费者可以订阅一个或多个主题,并被分配一个或多个分区…

hello hello 发布于 2023-12-02

Spring 中 lazy-init 懒加载的原理

懒加载是Spring框架中的一个重要特性,它允许我们将bean的实例化推迟到第一次使用时。懒加载的主要用途是提高应用程序的启动性能,减少不必要的资源消耗。 一、懒加载的用途…

hello hello 发布于 2023-11-29
上一页 下一页