![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Spring Boot
文章平均质量分 93
Micro麦可乐
原名(傲泣龙腾)
15年JAVA开发工程师曾在中国移动、招商集团任职,定期分享编程教程以最贴切生活、风趣幽默的讲解形式带领大家轻松学编程
展开
-
Spring Boot中@Async注解的使用及原理 + 常见问题及解决方案
在现代Java应用程序中,异步处理是提高性能和响应速度的重要手段之一,比如博主之前分享的【Spring Boot 使用自定义注解和自定义线程池实现异步日志记录】,就是采用了异步处理来实现日志记录,而在中它提供了@Async注解来简化异步编程,今天博主就来和小伙伴们分享本@Async注解的基本使用、实现原理以及应用场景。使用@Async注解定义异步方法原创 2024-07-12 01:11:32 · 2397 阅读 · 38 评论 -
Spring Boot 实现 AOP 动态热插拔功能并附DEMO源码
AOP(面向切面编程)是一种强大的编程范式,可以用于日志记录性能监控安全检查等跨越多个模块的通用功能。实现AOP的动态热插拔可以让我们在不重启应用的情况下启用或禁用特定的切面,提高系统的灵活性和可维护性。我们以一个例子来说明一下为什么需要AOP动态热插拔:我们系统有一个AOP切面,它负责了记录用户传递参数、执行时间、接口返回结果,默认是不开启的,现在因为某些原因需要检测某个接口参数接收情况 + 耗时 + 返回数据,那么我们就需要在不重启应用的情况下,动态开启关闭AOP切面来达到我们想要的效果。原创 2024-07-01 21:14:42 · 6434 阅读 · 42 评论 -
Spring Boot 整合开源 Tess4J库 实现OCR图片文字识别
之前在某一个项目中,客户要求根据上传的文档图片系统自动识别图片内容,这就需要到了OCR技术,我们公司一般做法通常是使用阿里云或腾讯云的OCR图片识别(大厂的训练量更多更大,识别更精准)无奈客户资金有限,又希望我们满足需求,最后我们决定采用开源Tesseract文字识别OCR引擎来实现Tesseract是一个功能强大的OCR引擎,其发展经历了多个版本的迭代。最初由惠普实验室开发,后由 Google 维护和发展。Tesseract通过神经网络和图像处理技术,对图像中的文字进行识别和提取。Tess4J是一个。原创 2024-06-03 21:54:08 · 4542 阅读 · 16 评论 -
Spring Boot 3 整合 SpringDoc OpenAPI 生成接口文档
在我们日常开发过程中,维护良好的API文档对于团队协作和开发效率至关重要。是一个强大的工具,能够帮助我们轻松生成规范的文档,并提供交互式的Swagger UI界面。本文跟着博主一起来学习如何在项目中整合,生成在线接口文档目前有两个版本1.x以及2.x, 以下是版本对应的支持:Springdoc OpenAPI 1.x:支持 JDK 8 及以上版本(Spring Boot 2.x and 1.x.)原创 2024-06-20 12:59:31 · 10673 阅读 · 33 评论 -
Spring Boot集成 Spring Retry 实现容错重试机制并附源码
短信发送远程服务调用争抢锁网络延迟服务宕机或临时故障等问题,会导致本次请求交互失败,而借助能够帮助我们在方法调用失败时自动重试,从而提高系统的稳定性和健壮性。本文跟着博主由浅入深一起来学习!Spring Retry 是一个用于简化 Java 方法重试逻辑的库,它能够在方法调用失败时自动重试,并提供了丰富的配置选项,支持重试次数、重试间隔时间、异常类型等配置。通过使用 Spring Retry,可以方便地在 Spring Boot 应用中实现容错和重试机制。原创 2024-06-13 22:27:28 · 10904 阅读 · 46 评论 -
Spring Boot整合Redis实现发布/订阅功能
Redis作为一个高性能的内存数据存储,除了支持缓存和持久化数据,它还有很多功能,如:在博主分享的上一篇文章中,我们介绍了使用Redis实现的延迟队列功能【Spring Boot整合Redis通过Zset数据类型+定时任务实现延迟队列】发布/订阅(Pub/Sub)发布/订阅是一种消息通信模式,其中发送者(发布者)发布消息,多个接收者(订阅者)订阅并接收这些消息。发布者和订阅者之间没有直接联系,消息由消息中间件(如Redis)传递。通过本文,我们详细介绍了如何在中整合Redis。原创 2024-06-10 19:24:17 · 11523 阅读 · 29 评论 -
Spring Boot整合Redis通过Zset数据类型+定时任务实现延迟队列
在我们项目开发中,我们经常需要在特定时间后执行某些任务,例如订单超时未支付自动取消、资金余额低于限额提醒、延时消息发送等。延迟队列是一种非常实用的解决方案,而Redis也具备延迟队列的功能,这里博主将和大家分享基于Redis的Zset数据类型定时任务实现延迟队列到这里相信小伙伴们已经了解了如何使用和Redis实现一个简单的延迟队列,并使用线程池来执行定时任务以提高效率。延迟队列能够有效地处理需要在特定时间点或延迟一段时间后执行的任务。原创 2024-06-09 12:00:00 · 10754 阅读 · 30 评论 -
Spring Boot通过自定义注解和Redis+Lua脚本实现接口限流
在我们日常开发的项目中为了保证系统的稳定性,很多时候我们需要对系统接口做限流处理,它可以有效防止恶意请求对系统造成过载。通过本文的步骤,我们将成功地在`Spring Boot`项目中结合`Redis`和`Lua`脚本实现了一个灵活高效的接口限流功能。通过`自定义注解`和`AOP`切面,可以方便地为不同的接口设置不同的限流策略原创 2024-06-09 10:00:00 · 9766 阅读 · 18 评论 -
Spring Boot整合WebSocket和Redis实现直播间在线人数统计功能
在现在这个短视频时代,很多企业也投入到了直播的行业,甚至为了打造自己专属私域某些企业也会开发应用自己的直播系统,而在直播应用中,实时显示在线人数是一个非常重要的功能。这里博主将详细介绍通过结合WebSocket和Redis,我们可以实现一个简单而高效的直播间在线人数统计功能,并提供完整的代码示例。创建一个WebSocket理器类继承,用于处理WebSocket消息和连接事件import org。原创 2024-06-08 00:12:28 · 5315 阅读 · 30 评论 -
Spring Boot中整合Jasypt 使用自定义注解+AOP实现敏感字段的加解密
前言开始接入步骤一:添加依赖步骤二:配置Jasypt步骤三:创建自定义注解步骤四:创建AOP切面步骤四:创建示例实体类步骤五:创建测试Controller步骤六:验证功能结语在博主前面一篇文章中,相信小伙伴对中整合Jasypt以及加解密的方法有了一定的了解,没看过的小伙伴可以访问【Spring Boot整合Jasypt 库实现配置文件和数据库字段敏感数据的加解密】一起探讨。本章节我们针对Jasypt来做一些升级的玩法,使用自定义注解AOP来实现敏感字段的加解密。原创 2024-06-06 16:09:55 · 5257 阅读 · 23 评论 -
Spring Boot整合Jasypt 库实现配置文件和数据库字段敏感数据的加解密
在我们日常开发中,很多时候为了保证数据的安全,在处理敏感数据前后端数据传输数据库敏感数据入库等,数据的加密和解密是不可忽视的重要环节,特别是一些政企项目这点就尤为重要,避免每一次安全审计后反复的调整,所以在系统设计之初我们就应当把数据安全的问题考虑进去!今天博主就给大家详细介绍的功能,并展示如何在项目中实现各种加解密操作Jasypt(Java Simplified Encryption)是一个用于加密和解密数据的Java库。它提供了简单易用的API,可以轻松地将加密功能集成到Java应用程序中。原创 2024-06-05 22:13:10 · 5197 阅读 · 21 评论 -
Spring Boot 使用自定义注解和自定义线程池实现异步日志记录
通过`自定义注解`、`Spring AOP` 和`自定义线程池`,我们可以在 `Spring Boot` 应用中实现高效的异步日志记录。这种方法不仅提高了日志记录的灵活性,还能减小对主业务线程的影响。希望本文对您在实际项目中实现日志记录有所帮助。这种方式在实际生产环境中非常实用,特别是在需要高效处理大量日志记录的场景下。通过合理配置线程池,可以确保日志记录的性能和稳定性。原创 2024-06-04 11:41:50 · 4511 阅读 · 15 评论 -
使用Spring Boot自定义注解 + AOP实现基于IP的接口限流和黑白名单
前言项目初始化自定义限流注解编写限流切面Controller中使用限流注解测试及思考结语在我们日常开发的项目中为了保证系统的稳定性,很多时候我们需要对系统做限流处理,它可以有效防止恶意请求对系统造成过载。网关限流NGINXZuul等 API 网关服务器端限流:服务端接口限流令牌桶算法:通过定期生成令牌放入桶中,请求需要消耗令牌才能通过熔断机制Hystrix等本文将详细介绍通过自定义注解和AOP(面向切面编程),实现基于IP的限流和黑白名单功能,包括如何使用Redis存储限流和黑名单信息。原创 2024-05-31 20:15:47 · 4979 阅读 · 15 评论 -
Spring Boot 整合 spring-boot-starter-mail 实现邮件发送和账户激活
在我们日常开发中,用户注册后需要对用户进行一个激活,通过邮件激活账户是一种常见的用户验证机制。这里博主将详细介绍如何使用实现邮件发送和账户激活功能,并构建一个简单的Spring Boot项目实现代码示例和关键技术点。Spring Boot的starter模块提供了自动化配置,所以在引入了依赖之后,会根据配置文件中的内容去创建实例,我们只需要在使用的地方直接@Autowired来引入原创 2024-05-30 10:31:44 · 5145 阅读 · 14 评论 -
SpringBoot启动时执行初始化操作还只会用@PostConstruct?进来看看其它方式~
相信很多小伙伴在日常工作中一定遇到了,项目启动的时候需要一些初始化操作,比如:数据库的初始化、资源初始化、缓存预热、定时任务等等操作,那么就一定看完本篇文章,告诉你你SpringBoot启动时执行初始化操作的4种方式本章节主要介绍了SpringBoot启动时执行初始化操作的4种方式,当然这些方式可以单独使用,也可以组合使用,具体选择取决于你的需求和项目的结构。原创 2024-01-04 20:34:35 · 4386 阅读 · 6 评论 -
了解SpringBoot自动配置原理开发自己的Starter
了解SpringBoot自动配置原理开发自己的Starter前言从启动到装配@EnableAutoConfiguration 注解验证分析实践大于理论SpringBoot starter机制自定义starter好处构建DEMO Starter测试结语前言公司使用SpringBoot开发已经有些时日了,也写了不少公司内部的starter(公司业务处理核心模块),今天就和大家聊聊SpringBo...原创 2020-04-14 20:48:31 · 2375 阅读 · 14 评论 -
SpringBoot静态方法调用Spring容器bean的几种方案
问题分析今天一个小伙伴和我说@Autowired 注入的Bean为null值,经过一番沟通后,我发现原来他需要在静态方法中调用容器Bean,大致将代码贴出来给大家看看://模拟错误的使用方式@Autowiredprivate static RedisUtil redisUtilBean;public static String getMsgByRedis(){redisUtilBea...原创 2019-07-01 17:36:02 · 18408 阅读 · 8 评论 -
Spring容器初始化后执行的几种解决方案
项目问题在我们日常Spring开发中,经常会在项目启动的时候做一些列的初始化操作;我们例举几个:项目启动,同时初始化我们系统的一些基础配置(SQL的导入)项目启动,同时启动定时任务按照以上的需求,我们如何来解决?那么我们就需要对Spring容器的初始化需要有一定的了解,今天我们就来讲一讲;解决方案Spring提供了当一个Bean初始化后执行方法的扩展点:InitializingBe...原创 2019-04-28 10:10:27 · 3593 阅读 · 0 评论 -
Spring Boot + thymeleaf 整合UEditor百度编辑器的各种问题解决
前言很多小伙伴以前使用Spring + SpringMVC 做的项目加入UEditor ,下载官网JSP版本可以快速实现UEditor 的使用;但是自项目转成Spring Boot 开发后,却发现原来的UEditor 使用不了了,今天我们就把坑一个一个引出,然后一个一个填上;下载/配置首先我们去 官方下载UEditor JSP版本 ,解压后放到项目resources/static目录;因...原创 2019-03-07 18:52:17 · 4466 阅读 · 4 评论 -
Error creating bean with name 'serverEndpointExporter' 因为websocket导致spring boot项目单元测试启动失败解决
项目问题:博主在项目中引入了websocket功能主要作用于消息的推送,但是在进行其它方法Junit测试的时候发现出现如下错误org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'serverEndpointExporter' defined in class pa...原创 2019-02-28 23:43:45 · 6008 阅读 · 5 评论