Springboot
文章平均质量分 84
小小码农>>>>
努力变得更好。
展开
-
SpringBoot 中实现订单30分钟自动取消的策略
在电商和其他涉及到在线支付的应用中,通常需要实现一个功能:如果用户在生成订单后的一定时间内未完成支付,系统将自动取消该订单。本文将详细介绍基于Spring Boot框架实现订单30分钟内未支付自动取消的几种方案,并提供实例代码。以上三种方案都可以实现订单在30分钟内未支付则自动取消的需求。根据实际业务需求、系统负载和其他因素,可以选择最适合自己系统的实现方案。每种方案都有其优缺点,需要根据具体情况权衡。原创 2023-12-28 17:14:35 · 840 阅读 · 0 评论 -
Springboot实现ModbusTCP通信
Modbus官网 Modbus协议 Modbus技术资源 MODBUS TCP / IP 关于Java的开源库Jamod:Java Modbus实现:Java Modbus库。该库由Dieter Wimberger实施。ModbusPal:ModbusPal是一个正在进行的Java项目,用于创建逼真的Modbus从站模拟器。由于预定义的数学函数和/或Python脚本,寄存器值是动态生成的。ModbusPal依赖于RxTx进行串行通信,而Jython则依赖于脚本支持。原创 2023-12-25 15:36:29 · 1868 阅读 · 0 评论 -
Spring Boot整合MyBatis-Plus框架快速上手
MyBatis-Plus官网地址:MyBatis-Plus(简称MP)是一个MyBatis的增强工具,在MyBatis的基础上只做增强不做改变,为简化开发、提高效率而生。MP的愿景是成为MyBatis最好的搭档,就像魂斗罗中的1P、2P,基友搭配,效率翻倍。原创 2023-12-25 13:34:18 · 1367 阅读 · 1 评论 -
Spring Security:从入门到精通,全方位指南
我们还希望在认证失败或者是授权失败的情况下也能和我们的接口一样返回相同结构的json,这样可以让前端能对响应进行统一的处理。要实现这个功能我们需要知道SpringSecurity的异常处理机制。在SpringSecurity中,如果我们在认证或者授权的过程中出现了异常会被ExceptionTranslationFilter捕获到。在ExceptionTranslationFilter中会去判断是认证失败还是授权失败出现的异常。原创 2023-12-21 16:36:55 · 700 阅读 · 0 评论 -
Spring Boot 集成 ElasticSearch:实现模糊查询、批量 CRUD、排序、分页和高亮功能
1.大致流程创建对应的请求 --> 设置请求(添加规则,添加数据等) --> 执行对应的方法(传入请求,默认请求选项)–> 接收响应结果(执行方法返回值)–> 输出响应结果中需要的数据(source,status等)2.注意事项如果不指定id,会自动生成一个随机id正常情况下,不应该这样使用new IndexRequest(“ljx777”),如果索引发生改变了,那么代码都需要修改,可以定义一个枚举类或者一个专门存放常量的类,将变量用final static等进行修饰,并指定索引值。原创 2023-12-20 11:17:53 · 1010 阅读 · 0 评论 -
SpringBoot+Redis 10分钟搞定海量重复提交问题
任意多次执行所产生的影响均与一次执行的影响相同。按照这个含义,最终的含义就是 对数据库的影响只能是一次性的,不能重复处理。如何保证其幂等性,通常有以下手段:1、数据库建立唯一性索引,可以保证最终插入数据库的只有一条数据。2、token机制,每次接口请求前先获取一个token,然后再下次请求的时候在请求的header体中加上这个token,后台进行验证,如果验证通过删除token,下次请求再次判断token。原创 2023-12-16 18:21:37 · 852 阅读 · 0 评论 -
在 Spring Boot 中发送邮件简单实现
这可能有一些不够灵活,你也可以把邮箱信息存储在数据库或者其他地方,随时可以通过管理后台进行维护、修改,而不需要重启应用。通过这个 starter,只需要简单的几行配置就可以在 Spring Boot 中实现邮件发送,可用于发送验证码、账户激活等等业务场景。如上,每次发送邮件都先从数据库中检索邮箱服务器的配置,然后构建 JavaMailSenderImpl 实例执行邮件发送。成功收件,注意 World 文本是加粗的,因为发送的是 HTML 邮件,并且使用了 strong 标签。执行测试,发送邮件。原创 2023-12-15 17:58:31 · 1307 阅读 · 0 评论 -
SpringBoot 接口实现幂等性,实现的四种方案!
在HTTP/1.1中,对幂等性进行了定义。它描述了一次和多次请求某一个资源对于资源本身应该具有同样的结果(网络超时等问题除外),即第一次请求的时候对资源产生了副作用,但是以后的多次请求都不会再对资源产生副作用。这里的副作用是不会对结果产生破坏或者产生不可预料的结果。也就是说,其任意多次执行对资源本身所产生的影响均与一次执行的影响相同。幂等性是开发当中很常见也很重要的一个需求,尤其是支付、订单等与金钱挂钩的服务,保证接口幂等性尤其重要。对于下单等存在唯一主键的,可以使用“唯一主键方案”的方式实现。原创 2023-12-13 14:34:28 · 1018 阅读 · 0 评论 -
SpringBoot+Netty+Websocket实现消息推送
这样一个需求:把设备异常的状态每10秒推送到页面并且以弹窗弹出来,这个时候用Websocket最为合适。原创 2023-12-11 15:16:05 · 981 阅读 · 1 评论 -
SpringBoot+WebSocket实时监控异常
此异常非彼异常,标题所说的异常是业务上的异常。最近做了一个需求,消防的设备巡检,如果巡检发现异常,通过手机端提交,后台的实时监控页面实时获取到该设备的信息及位置,然后安排员工去处理。因为需要服务端主动向客户端发送消息,所以很容易的就想到了用WebSocket来实现这一功能。WebSocket就不做介绍了,上链接:前端略微复杂,需要在一张位置分布图上进行鼠标描点定位各个设备和根据不同屏幕大小渲染,本文不做介绍,只是简单地用页面样式进行效果呈现。原创 2023-12-06 13:59:08 · 539 阅读 · 0 评论 -
Netty+SpringBoot 打造一个 TCP 长连接通讯方案
公司某物联网项目需要使用socket长连接进行消息通讯,捣鼓了一版代码上线,结果BUG不断,本猿寝食难安,于是求助度娘,数日未眠项目终于平稳运行了,本着开源共享的精神,本猿把项目代码提炼成了一个demo项目,尽量摒弃了其中丑陋的业务部分,希望与同学们共同学习进步。原创 2023-11-17 14:46:02 · 373 阅读 · 0 评论 -
注解方式优雅的实现 Redisson 分布式锁
日常开发中,难免遇到一些并发的场景,为了保证接口执行的一致性,通常采用加锁的方式,因为服务是分布式部署模式,本地锁Reentrantlock和Synchnorized这些就先放到一边了,Redis的setnx锁存在无法抱保证原子性的问题就暂时搁且到一边,直接上大招Redisson也是我最近开发项目中基本都在用的缓存,并且也都是用它的分布式锁机制。原创 2023-11-17 14:32:20 · 775 阅读 · 0 评论 -
SpringBoot AOP + Redis 延时双删功能实战
在多线程并发情况下,假设有两个数据库修改请求,为保证数据库与redis的数据一致性,修改请求的实现中需要修改数据库后,级联修改Redis中的数据。原创 2023-11-17 14:11:24 · 564 阅读 · 0 评论 -
SpringBoot 分布式验证码登录方案
为了防止验证系统被暴力破解,很多系统都增加了验证码效验,比较常见的就是图片二维码,业内比较安全的是短信验证码,当然还有一些拼图验证码,加入人工智能的二维码等等,我们今天的主题就是前后端分离的图片二维码登录方案。原创 2023-11-14 09:44:53 · 715 阅读 · 0 评论 -
SpringBoot 分布式验证码登录方案
为了防止验证系统被暴力破解,很多系统都增加了验证码效验,比较常见的就是图片二维码,业内比较安全的是短信验证码,当然还有一些拼图验证码,加入人工智能的二维码等等,我们今天的主题就是前后端分离的图片二维码登录方案。Kaptcha是一个基于SimpleCaptcha的验证码开源项目我找的这个轮子是基于SimpleCaptcha二次封装的,maven依赖如下--Kaptcha是一个基于SimpleCaptcha的验证码开源项目-->原创 2023-10-24 09:39:36 · 749 阅读 · 0 评论 -
SpringBoot 拦截器与统一功能异常处理
Spring AOP是一个基于面向切面编程的框架,用于将横切性关注点(如日志记录、事务管理)与业务逻辑分离,通过代理对象将这些关注点织入到目标对象的方法执行前后、抛出异常或返回结果时等特定位置执行,从而提高程序的可复用性、可维护性和灵活性。但使用原生Spring AOP实现统一的拦截是非常繁琐、困难的。原创 2023-10-18 10:59:59 · 306 阅读 · 0 评论 -
实战讲解 SpringBoot 定时任务:@Scheduled
最近的开发中又遇到了关于定时调度的开发任务,在定时调度其实有很多的第三方平台可以接入,但是其实在SpringBoot有自带的定时任务注解@Scheduled。@Scheduled可以通过注解配置快速实现方法的定时调度,直接在方法加上@Scheduled注解即可。原创 2023-10-18 10:36:58 · 242 阅读 · 0 评论 -
SpringBoot + Disruptor 实现特快高并发处理,支撑每秒 600 万订单无压力!
Disruptor 是英国外汇交易公司LMAX开发的一个高性能队列,研发的初衷是解决内存队列的延迟问题(在性能测试中发现竟然与I/O操作处于同样的数量级)。基于 Disruptor 开发的系统单线程能支撑每秒 600 万订单,2010 年在 QCon 演讲后,获得了业界关注。Disruptor是一个开源的Java框架,它被设计用于在生产者—消费者(producer-consumer problem,简称PCP)问题上获得尽量高的吞吐量(TPS)和尽量低的延迟。原创 2023-10-18 10:19:57 · 141 阅读 · 0 评论 -
40 个 SpringBoot 常用注解让开发加速
@ResponseBody注解只能用在被@Controller注解标记的类中。@PutMapping注解用于处理HTTP PUT请求,并将请求映射到具体的处理方法中,@PutMapping是一个组合注解,相当于是@RequestMapping(method=HttpMethod.PUT)的快捷方式。@Repository注解也是@Component注解的延伸,与@Component注解一样,被此注解标注的类会被Spring自动管理起来,@Repository注解用于标注DAO层的数据持久化类。原创 2023-09-11 10:38:05 · 157 阅读 · 0 评论 -
SpringBoot 实现扫码登录
因为后端返回的是一个流。就是放置了二维码中的uuid。这个uuid作为一次会话的标识符使用。服务端才可以使用webSocket的方式通知前端。就是通知前端已经登录成功了。并且给他业务所需要的内容。然后前端代码接收到了。就进行业务逻辑操作就可以啦。逻辑大概就是判断一下 token对不对。上面已经提到了前端如何配置 webSocket。就是记录一下谁扫码了。那句话怎么说的来着。有了获取二维码的接口。相对的前端需要调用。这样就增加了webSocket的支持啦。这里使用了xmlhttp进行处理。原创 2023-08-10 18:01:32 · 101 阅读 · 0 评论 -
Springboot集成支付宝微信支付项目
源码:链接:https://pan.baidu.com/s/13zvwVjkUkoZmbe8w-2tJLA。后端:shiringboot+mybatis-plus+swagger2+alipay+wxpay。原创 2023-08-04 17:24:01 · 176 阅读 · 0 评论 -
SpringBoot+ruoyi框架图片上传和文件下载
第一次接触ruoyi框架,碰到文件上传和下载问题,今天来总结一下。使用若依框架文件上传下载首先配置文件路径要配好。原创 2023-08-02 11:18:15 · 5184 阅读 · 0 评论 -
Spring Boot + Spring Batch 实现批处理任务,保姆级教程!
概念词就不多说了,我简单地介绍下 , spring batch 是一个 方便使用的 较健全的 批处理 框架。为什么说是方便使用的,因为这是 基于spring的一个框架,接入简单、易理解、流程分明。为什么说是较健全的, 因为它提供了往常我们在对大批量数据进行处理时需要考虑到的 日志跟踪、事务粒度调配、可控执行、失败机制、重试机制、数据读写等。原创 2023-08-01 18:31:15 · 5825 阅读 · 2 评论 -
Springboot整合MQTT订阅和发布
MQTT是机器对机器(M2M)/物联网(IoT)连接协议。它被设计为一个极其轻量级的发布/订阅消息传输协议。对于需要较小代码占用空间和/或网络带宽非常宝贵的远程连接非常有用,是专为受限设备和低带宽、高延迟或不可靠的网络而设计。这些原则也使该协议成为新兴的“机器到机器”(M2M)或物联网(IoT)世界的连接设备,以及带宽和电池功率非常高的移动应用的理想选择。例如,它已被用于通过卫星链路与代理通信的传感器、与医疗服务提供者的拨号连接,以及一系列家庭自动化和小型设备场景。原创 2023-07-19 11:19:16 · 1574 阅读 · 4 评论