
SpringBoot与微服务实践
文章平均质量分 82
本专栏基于SpringBoot2.3.2,配套自己写的代码例子和图例。内容涉及从基础入门到微服务架构的实践,包括基础的配置用法,web,数据库,Redis,也涉及到企业开发的消息队列,Mongodb,ES,Auth2.0,JWT,SpringCloud,Dubbo等,适合作为入门教程
Nicky.Ma
在技术领域拥有丰富经验和深厚知识的后端程序员。他的博客主要涉及分布式系统、消息中间件、Redis性能分析与调优、物联网IoT、Spring AI、DeepSeek AI应用开发、JAX-RS、Linux系统管理以及Redis底层数据结构等多个技术方向。
展开
-
SpringBoot2.0与微服务实践系列教程(本专栏导航)
该教程全面讲解SpringBoot2.0的配置、数据访问、日志处理、Web使用、缓存、消息队列、微服务实践,包括Spring Cloud和Spring Cloud Alibaba,还涵盖单点登录、OAuth2.0、Elasticsearch和任务调度等内容,适合初学者和进阶者。原创 2020-04-10 17:59:07 · 6584 阅读 · 0 评论 -
SpringBoot系列之RabbitMQ可靠性投递实践教程
通过以上配置和实践,可以实现基于 Spring Boot 2.2.1.RELEASE 的 RabbitMQ 可靠性投递,确保消息在生产者、RabbitMQ 和消费者之间的可靠传输。生产者确认机制(Confirm 和 Return 回调)消息持久化(交换机、队列、消息)消费者手动确认(ACK)消息失败重试机制(本地重试和异常队列)希望这篇教程能帮助你更好地理解和实现 RabbitMQ 的可靠性投递。原创 2025-05-01 07:49:20 · 772 阅读 · 0 评论 -
Spring Boot系列之使用Arthas Tunnel Server 进行远程调试实践
在开发和运维 Java 应用的过程中,远程诊断和调试是一个不可或缺的需求。尤其是当生产环境出现问题时,能够快速定位并解决这些问题至关重要。Arthas 是阿里巴巴开源的一款强大的 Java 诊断工具,它可以在不修改代码、不重启应用的情况下,实时诊断和分析 Java 应用的运行状态。而 Arthas Tunnel Server 则为远程连接提供了支持,使得我们可以通过 Web 管理页面远程连接到目标应用的 Arthas Agent,进行实时诊断。本文将详细介绍如何通过 Arthas Tunnel Server原创 2025-04-16 16:09:39 · 922 阅读 · 0 评论 -
SpringBoot系列之集成Redisson实现布隆过滤器
在高并发和大数据量的场景下,布隆过滤器是一种非常高效的存储结构,可以用于快速判断一个元素是否存在于集合中。本文将介绍如何在Spring Boot中集成Redisson来实现布隆过滤器,并通过一个订单查询的示例来展示其应用。原创 2025-04-11 18:20:50 · 662 阅读 · 0 评论 -
SpringBoot系列之Spring AI+DeekSeek创建AI应用
随着人工智能技术的飞速发展,AI 已经成为现代软件应用中不可或缺的一部分。从智能对话系统到内容生成工具,AI 的应用场景日益丰富。Spring AI 是 Spring 官方推出的用于简化 AI 集成的框架,而 DeepSeek 是一个强大的 AI 平台,提供了高效、灵活的语言模型和 API 接口。通过将 Spring AI 与 DeepSeek 结合,开发者可以在 Spring Boot 应用中快速实现智能对话、文本生成等 AI 功能。本教程中,我们将详细介绍如何使用 Spring Boot 3.2.原创 2025-03-03 13:54:20 · 1380 阅读 · 0 评论 -
SpringBoot系列之搭建WebSocket应用
WebSocket是一种建立在TCP协议上的一种网络协议,与Http协议类似,端口都是80或者443,协议标识符是ws、如果是加密安全的就是wss,这个和http/https有点类似。WebSocket 连接以 HTTP 请求/响应握手开始,连接成功后,客户端可以向服务端发送消息,反之亦可,WebSocket协议支持二进制数据和文本字符串的传输。因为客户端和服务端之间只有一条TCP通信连接,以后所有的请求都使用这条连接,所以Websocket也是属于长连接。原创 2024-06-20 16:49:43 · 458 阅读 · 0 评论 -
SpringBoot系列之使用Redis实现延时队列
在项目中可能会遇到这样的业务场景,下单后,并没有支付,隔多久后,如果用户还没支付,就自动取消订单,针对这种延时支付的场景,有很多实现方法,可以用MQ来实现,但是如果针对一个小项目,要引入MQ,有时候会觉得成本有点大,那可以用redis来实现,redis实现延时队列也有多种方案,比如可以使用发布订阅模式来实现,也可以直接用zSet集合来实现,本博客通过zSet集合来实现延时队列,仅供参考。原创 2024-02-19 19:27:55 · 1567 阅读 · 0 评论 -
SpringBoot系列之MybatisPlus实现分组查询
SpringBoot系列之MybatisPlus实现分组查询我之前博主曾记写过一篇介绍,不过之前的博客只是介绍了怎么集成,并没有做详细的描述各种业务场景,本篇博客是对之前博客的补充,介绍在mybatisPlus项目中怎么使用分组查询,仅供参考借鉴。原创 2024-01-27 17:22:38 · 2290 阅读 · 0 评论 -
SpringBoot系列之JPA实现按年月日查询
Java Persistence API (JPA) 是一种基于 ORM (Object-Relational Mapping) 技术的 Java EE 规范。它主要用于将 Java 对象映射到关系型数据库中,来实现对数据的操作,本文通过SpringBoot集成Spring Data Jpa,来实现对年月日的查询原创 2024-01-27 17:22:32 · 869 阅读 · 0 评论 -
SpringBoot系列之基于Jedis实现分布式锁
Redis系列之基于Jedis实现分布式锁。在单机环境,我们使用最多的是juc包里的单机锁,但是随着微服务分布式项目的普及,juc里的锁是不能控制分布锁环境的线程安全的,因为单机锁只能控制同个进程里的线程安全,不能控制多节点的线程安全,所以就需要使用分布式锁原创 2023-12-12 20:00:00 · 805 阅读 · 0 评论 -
SpringBoot系列之启动成功后执行业务的方法归纳
SpringBoot系列之启动成功后执行业务逻辑。在Springboot项目中经常会遇到需要在项目启动成功后,加一些业务逻辑的,比如缓存的预处理,配置参数的加载等等场景,下面给出一些常有的方法。原创 2023-12-08 20:00:00 · 393 阅读 · 0 评论 -
SpringBoot系列之使用Redis ZSet实现排序分页
相对于set来说,sorted set是一种有序的set,排序是根据每个元素的score排序的,score相同时根据key的ASCII码排序。根据ZSET的个性,我们可以实现一个排序,同时有个序号,也可以实现分页的逻辑,下面给出一个例子,看看具体的实现原创 2023-12-05 00:01:40 · 905 阅读 · 1 评论 -
SpringBoot系列之集成Jedis教程
SpringBoot系列之集成Jedis教程,Jedis是老牌的redis客户端框架,提供了比较齐全的redis使用命令,是一款开源的Java 客户端框架,本文使用Jedis3.1.0加上Springboot2.0,配合spring-boot-starter-data-redis`使用,只给出简单的使用demo原创 2023-12-04 20:00:00 · 497 阅读 · 0 评论 -
SpringBoot系列之集成Redission入门与实践教程
Redisson是一款基于java开发的开源项目,提供了很多企业级实践,比如分布式锁、消息队列、异步执行等功能。本文基于Springboot2版本集成redisson-spring-boot-starter实现redisson的基本应用原创 2023-11-08 22:36:27 · 771 阅读 · 0 评论 -
SpringBoot系列之自定义Jackson对象映射器
在我之前的博客中,有对Springboot2.0集成Mybatis Plus做了比较详细的描述,现在这篇博客介绍,基于开源的jackson api来自定义ObjectMapping(对象映射器),实现对实体类中的日期数据,统一格式化处理原创 2023-11-02 20:45:00 · 315 阅读 · 0 评论 -
SpringBoot系列之MyBatis Plus自动填充实现
在项目中经常会遇到需要自动填充数据的情况,比如新增一个DO类,里面可能会有id、create_time、modify_time、create_user等等这些通用的字段,每一个接口我们都要去设置值,不仅代码冗余,而且不能统一管理原创 2023-11-02 20:45:00 · 453 阅读 · 0 评论 -
SpringBoot系列之集成Resteasy实现RESTFul接口
JAX-RS:JavaAPI for RESTful Web Services,JAX-RS是可以用可以用于实现RESTFul应用程序的JAVA API,给开发者提供了一系列的RESTFul注解。EasyRest:这是Jboss开源的,一款用来定义实现RESTFul应用程序的框架,是基于JAX-RS规范,是JAX-RS API的实现原创 2023-08-15 22:16:53 · 857 阅读 · 0 评论 -
SpringBoot系列之基于Jersey实现文件上传API
JAX-RS:JAX-RS是可以用可以用于实现RESTFul应用程序的JAVA API,给开发者提供了一系列的RESTFul注解。Jersey:是基于JAX-RX API的实现框架,用于实现RESTful Web 服务的开源框架。原创 2023-08-13 16:05:06 · 919 阅读 · 0 评论 -
SpringBoot系列之基于MongoRepository实现分页
Spring Data MongoDB项目提供了与MongoDB文档数据库的集成。是Spring Data项目的一个分支。本博客基于Spring Data MongoDB实现,引入项目spring-boot-starter-data-mongodb实现MongoDB的分页,仅供参考原创 2022-12-07 11:42:47 · 1730 阅读 · 1 评论 -
SpringBoot系列之MongoTemplate加PageHelper分页实现
spring-boot-starter-data-mongodb也有集成基于Spring Data的分页实现,但是习惯了用PageHelper,所以基于PageHelper集成一下mongodb,下面给出实现代码例子原创 2022-11-24 15:16:12 · 2184 阅读 · 1 评论 -
SpringCloud系列之@SpringQueryMap传Bean对象数据
在使用Spring Cloud集成的openFeign GET请求调用一些接口,有时候会遇到需要传比较多的参数,所以,我们可以定义一个Bean类,直接丢过去?在spring-cloud-openfeign-core:2.1.0.RELEASE之前版本是不可以支持Bean类直接丢的,所以,只能使用@RequestParam传参数,在spring-cloud-openfeign-core:2.1.0.RELEASE以及之后版本,可以使用提供的@SpringQueryMap注解传一个bean对象过去原创 2022-10-11 08:25:39 · 2522 阅读 · 0 评论 -
SpringBoot系列之RestTemplate使用示例
博主之前经常对接一些接口,所以发现写一些http请求比较麻烦,学习springboot的过程知道可以用RestTemplate来做http请求,RestTemplate是Spring Framework框架封装的基于模板方法设计模式的一个工具类,带有同步模板方法 API 的原始 Spring REST 客户端类,下面博主分析一些对接过程的一些经验,RestTemplate基本使用可以参考官网文档:https://docs.spring.io/spring-framework/docs/5.1.6.RELEA原创 2022-05-01 00:15:00 · 1532 阅读 · 0 评论 -
SpringBoot系列之集成Scala开发API接口
最近需要用scala去写一些数据同步的程序,结合ETL实现,因为不熟悉scala语法,所以想到scala里结合springboot框架,快速开发,并没有系统学习scala,有些代码可能不够精简,有问题欢迎提出原创 2022-04-21 19:32:03 · 2294 阅读 · 0 评论 -
SpringBoot系列之对Excel报表的校验提示
最近在做一个一对多excel类型的报表,如果excel报表数据填错了,要对其进行校验,然后返回给前端,做一个表格显示错误信息,excel报表数据读取的可以参考我上篇博客,Excel格式类似于,维度是以合并单元行为准原创 2022-03-18 17:36:03 · 1930 阅读 · 0 评论 -
SpringBoot系列之集成EasyExcel导入合并行数据
最近在做Excel导入功能,是一种一对多的数据,涉及到合并单元格的,考虑到使用poi去学,要自己去做处理,所以,看看有什么开源的框架,找到两个合适的框架,一个是easypoi是能支持这种的,这个框架提供了特定注解;还有一种是EasyExcel,阿里开源的,不过功能相对没easypoi齐全,比如这种合并单元格数据导入,就没有特定的注解,不过通过搜索资料,是可以实现的,不过要自己写工具类做处理,工具类整理自网上教程原创 2022-03-18 17:35:53 · 3363 阅读 · 0 评论 -
SpringBoot启动提示JSR-330 javax.inject.Inject
JSR-330 ‘javax.inject.Inject’ annotation found and supported for autowiring,最近在启动一个SpringBoot项目,多次尝试都没启动成功,我还以为是端口冲突了,然后多方查找才知道原来是一个接口误打了断点,然后导致@Autowired不能依赖注入原创 2022-03-18 17:34:40 · 3260 阅读 · 0 评论 -
SpringBoot系列之MongoDB Aggregations
在上一章的学习中,我们知道了Spring Data MongoDB的基本用法,但是对于一些聚合操作,还是不熟悉的,所以本博客介绍一些常用的聚合函数。MongoDB 中使用聚合(Aggregations)来分析数据并从中获取有意义的信息原创 2022-02-08 18:01:40 · 12101 阅读 · 0 评论 -
SpringBoot系列之MongoCollection示例
在上一章的学习中,我们知道了Spring Data MongoDB的基本使用,本章节作为补充,介绍MongoCollection的基本使用原创 2022-02-08 18:01:34 · 10810 阅读 · 0 评论 -
SpringBoot系列之Spring Data MongoDB教程
SpringBoot系列之Spring Data MongoDB教程,MongoDB是一种很常用的非关系型数据库,本博客通过Springboot 官方提供的Spring data MongoDB starter进行实际,主要介绍MongoDB的使用和注意事项原创 2022-02-07 15:24:15 · 3590 阅读 · 0 评论 -
SpringBoot系列之表单参数校验整理
表单的校验在一些对接的接口,要求比较多,使用较多的是Hibernate的表单校验进行验证,在springboot项目中,有封装的starter,也是基于Hibernate的表单校验,下面通过一个RestFul风格的接口来看看具体使用,通过本博客可以对表单校验有比较清楚的理解原创 2022-01-18 17:35:50 · 2169 阅读 · 0 评论 -
Spring Cloud Alibaba系列之分布式事务Seata
Spring Cloud Alibaba系列之分布式事务Seata。Seata是Alibaba开源的一款分布式事务解决方案框架,致力于提供简单易用,高性能的服务。Seata支持多种分布式事务解决方法,比如常见的TCC、XA、SAGA,同时还有独创的AT模式原创 2022-01-07 18:13:48 · 2449 阅读 · 1 评论 -
SpringBoot系列之使用Redis做Mybatis二级缓存
mybatis的二级缓存默认保存在内存,通过CacheNamespace指定缓存类,可以实现基于redis的缓存,implementation 属性:默认是PerpetualCache类,即hashMap实现原创 2022-01-04 10:51:14 · 10959 阅读 · 4 评论 -
SpringBoot系列之集成MybatisPlus操作指南
MyBatisPlus (opens new window)(简称 MP)是一个 MyBatis (opens new window)的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。原创 2022-01-01 00:17:23 · 1732 阅读 · 0 评论 -
SpringBoot系列之集成阿里canal监听MySQL Binlog
canal是阿里开源的, 对数据库增量日志解析,提供增量数据订阅和消费的组件。引用官网的图片,canal的工作原理主要是模拟 MySQL slave 的交互协议,伪装自己为 MySQL slave,向master发送dump 协议,获取到数据后,解析 binary log 对象数据原创 2022-01-01 00:17:07 · 2538 阅读 · 0 评论 -
SpringBoot系列之canal和kafka实现异步实时更新
canal是阿里开源的, 对数据库增量日志解析,提供增量数据订阅和消费的组件。引用官网的图片,canal的工作原理主要是模拟 MySQL slave 的交互协议,伪装自己为 MySQL slave,向master发送dump 协议,获取到数据后,解析 binary log 对象数据。原创 2022-01-01 00:16:47 · 1868 阅读 · 0 评论 -
SpringBoot系列之集成kafka实现事件发布
Apache Kafka 是一个开源分布式事件流平台,被数千家公司用于高性能数据管道、流分析、数据集成和关键任务应用程序。事件发布订阅实现,我们经常使用到spring框架提供的ApplicationEventPublisher,基于kafka特性,我们也可以简实现类似功能果原创 2022-01-01 00:16:34 · 1509 阅读 · 0 评论 -
SpringBoot系列之自定义枚举类的数据校验注解
SpringBoot系列自定义枚举类的数据校验注解。数据校验,需要对枚举类型的数据传参,进行数据校验,不能随便传参。拓展,支持多个参数的枚举数据校验原创 2021-12-16 19:56:23 · 2580 阅读 · 0 评论 -
SpringCloud系列之自定义GatewayFilterFactory
SpringCloud系列之自定义GatewayFilterFactory。客户端请求都会先经过Gateway Handler Mapping,匹配上就通过Gateway Web Handler转给过滤器处理,过滤器分为PreFilter(前置过滤器)、PostFilter(后置过滤器)原创 2021-12-16 19:56:12 · 7141 阅读 · 0 评论 -
Spring Cloud Alibaba系列之服务防护组件Sentinel
SpringCloud Alibaba系列之服务防护组件Sentinel,Sentinel是阿里巴巴开源的一款高可用的分布式防护组件,主要应用于流量控制、流量整形、熔断降级、系统自适应保护、热点防护等多个维度,原生支持 Java/Go/C++ 等多种语言,并且提供Istio/Envoy 全局流控支持来为 Service Mesh 提供高可用防护的能力原创 2021-02-05 17:49:55 · 2379 阅读 · 0 评论 -
Spring Cloud Alibaba系列之分布式服务组件Dubbo
Spring Cloud Alibaba Dubbo是Spring Cloud Alibaba项目中的一个,扩展了分布式服务调用能力,不仅能使 Apache Dubbo 和 OpenFeign 共存,还允许 Spring Cloud 标准调用底层通过 Dubbo 支持的通讯协议传输原创 2021-01-19 17:22:36 · 2807 阅读 · 0 评论