- 博客(151)
- 收藏
- 关注
原创 Springboot 2.7+解决跨域问题,到底是在SpringBoot中添加拦截器还是修改Nginx配置
跨域问题是在前后端分离的情况下一个非常常见的问题,通常添加一个跨域拦截器就可以解决,但是在后台添加后还是出现跨域问题,到底是配置错误还是哪里出了问题?本文将基于 SpringBoot 2.7 从多种角度解决跨域问题。
2024-12-07 12:04:30
1214
原创 SpringBoot 集成 Netty 作为服务端常用 TCP/UDP 通讯协议示例
文章目录1 摘要2 通讯协议3 核心代码3.1 Netty 服务器3.2 Netty 服务端工具类3.3 Netty 服务处理器3.4 协议请求头封装类4 测试4.1 测试工具4.2 测试数据4.2 测试数据1 摘要在 IoT 物联网设备通讯领域,服务端和设备端的通讯通常基于 TCP/UDP 协议,在这些协议的基础上定义自己的私有通讯协议。本文将介绍 SpringBoot 集成 Netty 在服务端常用的TCP、UDP通讯协议示例。SpringBoot 集成 Netty 作为服务端:SpringBo
2024-08-20 11:07:51
2051
1
原创 SpringBoot 集成 easyexcel 实现导入导出功能
Excel 导入导出在实际项目中应用非常广泛,Apache POI 是主要的文档操作工具。EasyExcel 是由阿里开源的,是基于 POI 做的优化封装,专门做 Excel 的导入和导出,使得开发者能够快速上手 Excel 的导入和导出功能。本文将介绍基于 SpringBoot 集成 EasyExcel 实现简易的导入和导出功能。
2024-06-24 09:17:18
1803
原创 关于低版本Windows系统在SpringBoot项目中无法运行OpenCV的问题
曾经的典操作系统 Windows 7 ,在如今的 2024 年依旧占有一定的市场份额。在 SpringBoot 集成 OpenCV 的过程中也提到过操作系统版本过低会导致程序无法运行的问题。本文将介绍关于低版本的 Windows 操作系统(Windows 7 以及 Windows Server 2012)如何解决在 SpringBoot 项目中无法运行 OpenCV 的问题。SpringBoot 集成 OpenCV 实现人脸检测功能。
2024-05-16 14:57:31
837
1
原创 SpringBoot 集成 FFmpeg 解析音视频
FFmpeg 是最常用的跨平台的音频、视频处理软件,但是其通过命令行的方式进行操作对于普通用户而言上手难度大,同时 FFmpeg 只是函数库,对于不同的编程语言,需要自行适配API接口,以便于操作文件。本文介绍SpringBoot 集成 FFmpeg 实现对音视频文件的解析。FFmpeg 官网:FFmpeg Java 平台常用适配仓库:JavaCV :JavaCV 是一个集成第三方函数库的平台,包括 OpenCV、FFmpeg 等知名函数库,提供统一的 API 操作,应用广泛。
2024-05-11 11:37:42
2468
1
原创 SpringBoot 集成 OpenCV 实现人脸检测功能
OpenCV 作为一个世界上最大的计算机视觉库,里边包含了非常丰富的函数,开箱即用。不过 OpenCV 都是以应用程序直接运行的方式在计算机上运行,要想通过各种编程语言来操作,就需要开发者自行适配。本文将介绍基于 Java 语言 SpringBoot 框架集成 OpenCV 实现图片人脸检测功能。
2024-05-08 16:37:37
2068
1
原创 社区物联网云服务架构设计
随着社区管理越来越智能化,社区物联网升级与改造的市场空间也越来越大。社区物联网包含楼宇对讲、门禁门锁、通道闸等等设备系统。这些系统可以本地化,也可以云端部署。本文将介绍一种支持云端+本地化社区物联网架构模型。
2023-11-24 16:08:10
2929
原创 SpringBoot 2.7 集成 Netty 4 实现 UDP 通讯
Netty 作为异步通讯框架,支持多种协议。本文将介绍基于 SpringBoot 2.7 整合 Netty 4 实现 UDP 通讯。
2023-08-31 18:41:49
4428
原创 SpringBoot 2.7 集成 Netty 4 解决粘包半包问题
Netty 的粘包和半包问题是由于 Netty 在接收消息时无法判断消息是否发送完毕,只能靠读取消息时是否读满缓存来终止,因此就出现了连续发送多条消息,实际上 Netty 接收端只在一次读取这就是粘包;又或者一次发送的消息太长,读取的时候会丢弃一部分,这就是半包。为了解决这个问题,保证一次发送对应一次读取,类似于 http 请求,一次请求对应一次回复。这里介绍使用解决 Netty 粘包半包问题。关于。
2023-08-24 18:43:38
2981
原创 SpringBoot 2.7 集成 Netty 4 模拟服务端与客户端通讯入门教程
Netty 作为一款 NIO 底层通讯框架,在高并发场景有着广泛的应用,众多消息中间件内部也是基于 Netty 进行开发。本文将介绍基于 SpringBoot 2.7 集成 Netty 来模拟服务端与客户端进行通讯。
2023-08-23 11:58:06
1418
原创 支持多种推送方式的消息推送设计方案
通过邮件、短信等方式向用户发送通知是一项很常见的业务场景。如何设计一套好用、简洁消息推送架构?这是一个问题。保存推送消息本身一套消息文本支持多种类型消息推送消息推送记录占用空间小支持消息重试推送机制。
2023-08-18 14:23:27
909
原创 Springboot 2.7 集成 Swagger 增强版接口框架 Knife4j 4.3 + springdoc OpenApi 3.0
Swagger 作为一款服务端接口文档自动生成框架,早已深入人心,并且在市场上得到了广泛的应用。然而,Swagger 3.0 也就是 OpenApi 3.0 规范发布之后便停止了更新维护,出道就是巅峰。Knife4j 作为 Swagger 的增强版,是对 Swagger UI 做了优化,同时还有很多增强的功能。伴随着 Swagger 3.0 的停止更新,如今 Knife4j 从4.0开始已经逐渐使用 Springdoc 作为 swagger 的替代。
2023-08-15 18:52:46
10035
5
原创 Spring Boot 2.5 集成缓存框架 JetCache 2.7
JetCache 是阿里出品的一款缓存框架,其提供了基于接口的缓存以及能够实现本地和远程二级缓存(本地缓存是当前 JVM 中的LinkedHashMap,远程缓存为Redis),在提高系统吞吐量的同时,也极大地方便了代码编写。本文将介绍基于 Spring Boot 2.5 简易集成缓存框架 JetCAche 2.7。1 JetCache 适用于标准的查询单条数据或者查询列表数据的接口进行完整的缓存,这就要求接口的入参必须包含唯一健,且返回值必须是DTO对象。同时对于分页查询的接口无法实现缓存,也没有意义。
2023-03-26 18:34:44
3057
1
原创 Spring Cloud Gateway 网关实现白名单功能
对于微服务后台而言,网关层作为所有网络请求的入口。一般基于安全考虑,会在网关层做权限认证,但是对于一些例如登录、注册等接口以及一些资源数据,这些是不需要有认证信息,因此需要在网关层设计一个白名单的功能。本文将基于 Spring Cloud Gateway 2.X 实现白名单功能。注意事项: Gateway 网关层的白名单实现原理是在过滤器内判断请求地址是否符合白名单,如果通过则跳过当前过滤器。如果有多个过滤器,则需要在每一个过滤器里边添加白名单判断。......
2022-08-30 17:30:49
14125
3
原创 玩转亚马逊 AWS IoT(3): SpringBoot 2.7 集成 AWS IoT 服务
springBoot 2.7 集成亚马逊 AWS iot 物联网服务
2022-07-30 16:02:24
4809
原创 Springboot 2.6 + Mybatis Plus 3.5 集成 Sharding-jdbc 5.1 分库分表
随着业务数据的增加,单个的数据库已经无法支撑系统运行了,为了提升系统的流畅性,分库分表就是为了解决系统在大量数据情况下系统相应时间的问题。Sharding-jdbc 作为成熟的分库分表技术框架,在国内应用广泛。本文将介绍基于 Springboot 2.6 + Mybatis Plus 3.5 集成 Sharding-jdbc 5.1 实现分库分表功能。
2022-04-14 17:04:47
12175
2
原创 SpringBoot 2.6 集成 Kafka 2.8
Kafka 本身作为流处理平台,在大数据处理能力上应用广泛;同时 Kafka 也可以作为消息队列。本文将介绍基于 SpringBoot 2.6 集成 Kafka 2.8。 spring boot 2.6 with kafka
2022-03-01 18:44:21
4394
2
原创 SpringBoot 2.6 集成 MySQL 多数据源读写分离
文章目录1 摘要2 核心 Maven 依赖3 数据源配置4 核心代码4.1 数据源配置类4.2 路由数据源4.3 保存数据源 key 的本地线程类4.4 数据源路由注解4.5 数据源动态切换AoP4.6 读写分离注解使用实践--Controller5 测试5.1 不指定数据源5.2 指定从库数据源5.3 指定主库数据源6 推荐参考资料71 摘要为了缓解数据库的压力,在高并发系统中常采用数据库读写分离的模式。本文将介绍基于 SpringBoot 2.6 集成 MySQL 实现读写分离的功能。java程序
2022-02-15 13:57:45
1331
原创 MySQL 数据库主从集群搭建
文章目录1 准备工作2 配置主数据库2 配置从库3 从库设置只读用户4 推荐参考资料1 准备工作1 选择一个服务器当做主服务器,将服务器上需要的数据进行备份2 安装从库的 MySQL,需要与主服务器的版本保持一致3 将主服务器上的数据同步到从库中(主从集群只会同步创建集群之后的数据操作,对于原有的数据不会同步)2 配置主数据库修改配置文件vim /etc/my.cnf添加配置[mysqld]log-bin=mysql-binserver-id=1重启 mysql
2022-02-12 16:09:18
2491
原创 Spring boot 2.5 集成 Elasticsearch 实现增删改查以及全文搜索
文章目录1 摘要2 核心 Maven 依赖3 核心代码3.1 application 配置3.2 实体类3.3 基础增删改查(CRUD)3.4 全文搜索(**重点**)3.5 SpringBoot 启动类4 注意事项4.1 SpringBoot properties/yml 配置4.2 字母大小写敏感问题4.3 分词问题5 推荐参考资料6 本次提交记录1 摘要Elasticsearch 是一款基于 Apache Lucene 的优秀的搜索服务器。本文将介绍基于 SpringBoot 2.5 集成 Ela
2021-12-15 16:48:05
2544
原创 centOS 7 Elasticsearch 7.16 安装使用教程
文章目录1 下载2 安装2.1 下载2.2 添加用户2.3 启动与停止3 使用3.1 启动报错-虚拟内存过小3.2 启动报错-未配置默认服务发现设置3.3 设置远程连接3.4 设置密码1 下载官网: https://www.elastic.co下载页面: https://www.elastic.co/cn/downloads/elasticsearch注意:Elasticsearch 7 开始推荐 Java 最低版本为 Java 112 安装2.1 下载进入需要安装的目录cd
2021-12-15 14:34:10
3987
2
原创 SpringBoot 2 集成 RocketMQ 4.9 收发同步、异步以及事务消息
1 摘要RocketMQ 支持多种推送消息的方式,可根据业务需要使用。本文将介绍SpringBoot 2 集成 RocketMQ 4.9 收发同步、异步以及事务消息SpringBoot 2 集成 RocketMQ:SpringBoot 2.x 简易集成 RocketMQ2 核心 Maven 依赖.
2021-12-07 16:22:46
2781
原创 SpringBoot 2.x 简易集成 RocketMQ
文章目录1 摘要2 核心 Maven 依赖3 消息生产者-Producer3.1 application 配置文件3.2 消息主题定义3.3 生产者发送消息3.4 Controller 控制层与SpringBoot 启动类4 消费者-Consumer4.1 application 配置文件4.2 消息主题定义4.3 消费者接收消息4.4 SpringBoot 启动类5 消息推送测试6 推荐参考资料7 本次提交记录1 摘要RocketMQ 为阿里开源的高性能消息队列,基于Java实现,支持多种开发语言,能
2021-12-03 16:14:19
606
原创 微服务链路追踪 Skywalking 服务警告
文章目录1 摘要2 警告通知配置3 通知接口示例4 测试通知5 推荐参考资料6 Github 源码1 摘要Skywalking 支持服务警告,即当服务调用异常的时候通知开发者。准备工作Spring Cloud Alibaba 2.X 简易集成 Skywalking 实现微服务链路追踪2 警告通知配置配置文件路径${skywalkingPath}/config/alarm-settings.yml其中自带了一些服务警告的配置,包括服务响应时间、数据库响应时间等webhook
2021-11-23 17:17:43
1039
原创 微服务链路追踪 Skywalking 生成 Trace ID 以及 logback 日志归集
文章目录1 摘要2 核心 Maven 依赖3 Logback 配置4 日志使用效果5 推荐参考资料6 Github 源码1 摘要要实现精确的链路追踪,则需要针对每一次请求设置一个唯一编码,Trace ID 就是用于链路追踪的标识。本文将介绍 Skywalking 在 SpringBoot 项目中集成 Trace ID 以及配置 logback 实现日志异步上传到 Skywalking 的功能。准备工作Spring Cloud Alibaba 2.X 简易集成 Skywalking 实现微服务
2021-11-23 17:14:22
13576
5
原创 微服务链路追踪 Skywalking 支持 Spring Cloud Gateway
文章目录1 摘要2 操作方法3 对比测试3.1 添加 Gateway 插件的链路追踪3.2 没有添加 Gateway 插件的链路追踪4 推荐参考资料5 Github 源码1 摘要Skywalking 默认是不支持 Spring Cloud Gateway 网关服务的,需要手动将 Gateway 的插件添加到 Skywalking 启动依赖 jar 中。准备工作Spring Cloud Alibaba 2.X 简易集成 Skywalking 实现微服务链路追踪2 操作方法Skywalk
2021-11-23 17:12:13
9857
9
原创 微服务链路追踪 Skywalking MySQL 持久化配置
文章目录1 配置文件2 添加数据库驱动3 推荐参考资料1 配置文件Skywalking OAP 服务配置:${skywalkingPath}/config/application.ymlstorage: selector: ${SW_STORAGE:mysql}将默认的持久化方式 h2 改为 mysql mysql: properties: jdbcUrl: ${SW_JDBC_URL:"jdbc:mysql://127.0.0.1:3306/skywalk
2021-11-23 17:09:53
1364
原创 SpringBoot 2.X Redis Jackson 序列化配置
文章目录1 摘要2 核心 Maven 依赖3 核心代码3.1 序列化配置类3.2 Redis 配置信息3.3 Redis 操作工具类1 摘要Spring Data Redis 的序列化使用的是 JDK 的序列化方案,储存的为二进制数据。一般集成 Redis 时,需要自定义序列化方案,本文将给出适用于 SpringBoot 2.5+ 的 Redis Jackson 序列化方案。2 核心 Maven 依赖 <!-- redis --> <dep
2021-11-22 11:42:57
5483
原创 SpringBoot 2.X MongoTemplate 分组聚合查询一网打尽
文章目录1 摘要2 按照固定字段分组查询3 分组分页查询4 按照日期分组查询(字段为精确到秒的时间戳)5 按照日期分组查询(字段为精确到毫秒的时间戳)6 按照日期分组查询(字段为Date)7 按照自定义时间区间分组查询8 数据库实体类及其他相关类8.1 数据库实体类8.2 统计结果类8.3 日期分组信息类8.4 获取日期分组信息的方法9 推荐参考资料10 本次提交记录1 摘要MongoDb 如何实现聚合查询?分组查询?分组分页查询?自定义时间区间查询?时间格式转换查询?不要慌,本文将介绍基于 S
2021-11-19 15:44:38
6097
3
原创 Springboot 2.X MongoTemplate 统计查询以及查询部分指定字段
文章目录1 摘要2 查询指定字段3 统计查询4 推荐参考资料5 本次提交记录1 摘要MongoDB 作为 NoSQL 文档数据库,其查询的语法区别于传统的关系型数据库。本文将介绍 MongoTemplate 查询部分指定字段以及统计查询功能。2 查询指定字段./demo-mongodb/src/main/java/com/ljq/demo/springboot/mongodb/service/impl/BlogServiceImpl.java /** * 查询博客阅读
2021-11-16 11:29:37
4964
原创 Springboot 2.X MongoTemplate 实现批量插入以及批量更新
文章目录1 摘要2 批量插入3 批量更新4 推荐参考资料5 本次提交记录1 摘要MongoTemplate 作为 Spring 对 MongoDB 提供的操作类,支持数据的批量操作。本文将介绍使用 MongoTemplate 实现批量插入和批量更新的功能。2 批量插入./demo-mongodb/src/main/java/com/ljq/demo/springboot/mongodb/service/impl/BlogServiceImpl.java /** * 批
2021-11-16 11:28:00
11683
2
原创 Springboot 2.X 集成 MongoDB 使用 MongoTemplate 实现基本增删改查
文章目录1 摘要2 核心 Maven 依赖3 配置信息4 核心代码4.1 实体类4.2 MongoTemplate 核心操作示例-业务实现类4.3 其他操作类-请求参数4.4 其他操作类-控制层(Controller)5 推荐参考资料6 本次提交记录1 摘要MongoDB 作为应用广泛的文档数据库,Spring 对其提供了丰富的操作支持。主要操作 MongoDB 的类有 MongoRepository 以及 MongoTemplate。关于这两者的关系, MongoRepository 提供了
2021-11-15 13:56:14
2402
原创 Spring Cloud Alibaba 2.X 简易集成 Skywalking 实现微服务链路追踪
文章目录1 摘要2 Skywalking 所需条件3 下载 Skywalking3 服务配置与说明4 与 SpringBoot 项目集成5 控制台使用说明6 推荐参考资料1 摘要为什么要做链路追踪?当微服务的数量庞大、微服务之间相互调用复杂的时候,就需要做链路追踪,这样就能够理清服务调用关系、快速定位问题。对于微服务数量较少(<10个),则可以不做链路追踪。本文将介绍基于 Spring Cloud Alibaba 2.2 集成 Skywalking 实现微服务链路追踪。Skywalkin
2021-11-03 15:28:56
3038
1
原创 给 SpringBoot 项目配一套优雅实用的 logback 日志配置
文章目录1 摘要2 完整配置文件3 配置说明3.1 怎么个优雅法3.2 怎么个实用法4 推荐参考资料1 摘要logback 作为SpringBoot 默认日志记录框架,足以见得其技术地位。很多人随便从网上找一个 logback 的配置文件,但是多少有一些使用不便的地方,作为一个对代码有洁癖的开发者,作者自己折腾了一个既优雅又实用的 logback 日志配置模板。logback 官方文档:http://logback.qos.ch/documentation.html2 完整配置文件废话不
2021-11-02 14:56:02
2050
2
原创 Spring Cloud Alibaba 集成 Gateway 实现动态路由功能
文章目录1 摘要2 核心 Maven 依赖3 名词释义4 Gateway 动态路由原理5 数据库表6 核心代码6.1 配置信息6.2 路由实体类6.3 本地路由数据库持久层(DAO/Mapper)6.4 操作 Gateway 路由的 Repository6.4 路由管理业务层 (Service)6.5 路由管理控制层6.6 其他相关类7 测试7.1 新增路由7.2 查询路由列表7.3 修改路由7.4 删除路由7.5 测试匹配路由规则的接口7.6 测试不匹配路由规则的接口7.7 测试微服务代理8 推荐参考资
2021-10-25 17:33:31
2322
原创 SpringBoot 2.X 基于 Redis 实现延时消息队列功能
文章目录1 摘要2 核心 Maven 依赖2 核心代码2.1 配置文件2.2 延时队列工具类3.3 使用示例(Controller)3.4 其他相关类(请求参数)4 测试5 推荐参考资料6 本次提交记录1 摘要延时消息队列的功能除了使用 RabbitMQ 这类专业的消息队列工具实现外,如果应对小规模简单的业务,也可以 Redis 实现延时队列的功能。本文将介绍 Springboot 基于 Redis 实现延时队列功能。2 核心 Maven 依赖 <!-- redis
2021-10-18 15:07:02
1226
原创 Springboot 2.X 集成 RabbitMQ 实现延时消息队列功能
文章目录1 摘要2 安装 RabbitMQ 延时消息插件2.1 下载插件2.2 安装插件2.3 启用插件3 核心代码3.1 配置定义3.2 消息队列生产者3.3 消息队列消费者3.4 使用示例(Controller)4 测试5 推荐参考资料6 本次提交记录6 本次提交记录1 摘要延时消息,即生产者发送一条消息,消费者在等待指定的时间之后再进行消费。常见应用场景如商品下单后,当用户没有在固定时间内支付即会销毁订单。RabbitMQ 实现延时消息的原理是通过 TTL + dead message (
2021-10-13 16:55:44
482
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人