- 博客(49)
- 资源 (1)
- 收藏
- 关注
原创 SpringCloud Alibaba
本文汇总了SpringCloud Alibaba生态的核心组件经典博客资源,包括:1)Nacos服务注册与配置中心的两篇详细教程;2)Sentinel实现熔断与限流的两篇实践指南;3)Seata处理分布式事务的经典案例解析;4)SpringCloud Alibaba技术合集。这些资源涵盖了微服务架构中的服务发现、流量控制、分布式事务等关键场景,为开发者提供了完整的技术参考方案。
2026-01-04 17:35:38
326
原创 SpringCloud-06-Gateway网关
SpringCloud Gateway是微服务架构中的核心API网关,基于Spring生态构建,提供路由管理、安全控制、流量监控等功能。其核心组件包括路由(Route)、断言(Predicate)和过滤器(Filter),通过请求匹配和过滤链处理实现反向代理。配置示例展示了如何定义路由规则、负载均衡及多种断言条件。过滤器分为局部(GatewayFilter)和全局(GlobalFilter),用于鉴权、限流等场景。Gateway取代了Zuul,支持注册到服务注册中心,为微服务提供统一入口和安全防护。
2026-01-04 17:10:04
835
原创 SpringCloud-05-Micrometer Tracing+ZipKin分布式链路追踪
摘要:Micrometer Tracing是Spring Boot 3.x内置的分布式追踪解决方案,用于解决微服务架构中的调用链路监控问题。它基于Micrometer观测框架,提供自动追踪、上下文传播、灵活导出等功能,支持Zipkin、Jaeger等追踪工具。Zipkin作为分布式链路追踪系统,能够收集并可视化微服务调用链路信息,帮助开发人员分析性能瓶颈。文章详细介绍了Micrometer Tracing的核心概念、Zipkin的安装运行方法,以及通过示例演示了如何在Spring Boot项目中集成使用这些
2026-01-04 16:13:33
1264
原创 SpringCloud-04-Circuit Breaker断路器
摘要:本文探讨了分布式系统中的服务雪崩问题及其解决方案。在微服务架构中,服务间的级联调用可能导致系统资源耗尽,引发雪崩效应。通过引入断路器(CircuitBreaker)机制,可以快速熔断故障节点并返回兜底数据,防止故障扩散。Resilience4J作为Java容错库,提供了熔断、限流、重试和隔离等功能。其中熔断器通过滑动窗口统计调用结果,在失败率超过阈值时自动切换状态;舱壁隔离通过信号量或线程池限制并发请求;限流则采用令牌桶等算法控制请求速率。这些机制共同保障了分布式系统的稳定性和可用性。
2025-12-29 21:42:19
632
1
原创 SpringCloud-03-OpenFeign远程调用
OpenFeign是一个声明式的HTTP客户端工具,用于简化微服务间的调用。它通过@FeignClient注解自动生成接口实现类,支持负载均衡、超时控制、重试机制等特性。相比RestTemplate,OpenFeign只需定义接口即可完成服务绑定,降低了开发量。它还支持日志打印、请求压缩、更换HttpClient等高级功能,能有效提升调用性能和可观测性。配置简单,只需添加依赖和启用注解@EnableFeignClients即可快速集成到SpringCloud项目中。
2025-12-29 20:42:03
928
原创 SpringCloud-02-LoadBalance服务调用的负载均衡
本文介绍了客户端负载均衡的工作原理及其在SpringCloud中的实现方式。与传统的服务端负载均衡不同,客户端负载均衡由客户端维护服务清单,通过@LoadBalanced注解实现请求分发。SpringCloud推荐使用LoadBalancer替代已废弃的Ribbon,支持RestTemplate和WebClient两种调用方式。LoadBalancer工作流程包括获取服务列表和按策略选择服务实例两步,默认提供随机和轮询两种算法。文中给出了配置示例,并演示了如何从默认轮询切换为随机算法。
2025-12-29 19:41:23
434
1
原创 SpringCloud-01-Consul服务注册与发现
Consul是由HashiCorp开发的开源分布式服务发现与配置管理系统,采用Go语言编写。它提供微服务治理、配置中心、控制总线等核心功能,支持服务发现、健康检查、KV存储、安全通信和多数据中心等特性。Consul基于Raft算法实现一致性,属于CP型分布式系统,确保强一致性和分区容错性,但会降低可用性。相比Zookeeper,Consul提供Web管理界面,便于服务监控与配置。通过Spring Cloud集成可实现服务注册与发现,适用于构建完整的服务网格解决方案。
2025-12-29 19:13:08
921
原创 RestTemplate
摘要:RestTemplate是Spring框架提供的HTTP请求工具,支持RESTful风格的GET、POST、PUT、DELETE等操作,简化了传统HttpClient的复杂调用。它继承InterceptingHttpAccessor并实现RestOperations接口,通过配置类注入即可使用。示例代码展示了消费者通过RestTemplate调用提供者服务的简单实现,相比传统方式更加便捷高效。
2025-12-29 17:24:10
357
原创 Java登录认证解决方案
本文对比了Session和JWT两种认证机制的特点与实现方式。Session认证将用户信息保存在服务端内存中,在集群环境下存在状态共享问题;而JWT作为轻量级安全传输方案,通过Header、Payload、Signature三部分组成的Token实现跨语言、分布式认证。JWT采用Base64编码和签名算法保障数据安全,具有简洁、跨平台、无状态等优势,特别适合微服务架构。文中详细解析了JWT的组成结构、签名机制(包括对称/非对称加密算法)以及完整验证流程,指出Token认证将状态保存在客户端,有效解决了服务端
2025-12-16 17:03:11
1015
原创 统一异常处理
本文介绍了Java异常处理的两种实现方式:1)自定义异常类LeaseException继承RuntimeException,包含错误码和消息;2)全局异常处理器GlobalExceptionHandler,通过@RestControllerAdvice注解统一处理常规异常和自定义异常,返回标准化错误响应。示例代码展示了异常的定义、捕获和统一返回处理流程,为构建健壮的异常处理机制提供了参考方案。
2025-12-12 15:11:54
202
原创 项目统一返回结果
本文介绍了统一返回结果结构的实现方案。通过定义泛型类Result<T>封装响应数据,包含状态码、消息和业务数据三部分。配合枚举类ResultCodeEnum预定义常见状态码(如成功200、失败201等),提供静态方法快速构建成功/失败响应。示例展示了删除接口如何返回统一格式的响应。该设计规范了API响应格式,便于前端统一处理,同时通过枚举集中管理状态码,提高代码可维护性。
2025-12-12 15:09:00
257
原创 微服务基础概念
微服务架构是解决单体架构问题的有效方案。通过将系统按业务功能拆分为独立服务,微服务架构降低了团队协作成本,提高了系统发布效率和可用性。拆分原则包括高内聚、低耦合,可采用纵向按功能模块或横向抽取公共服务两种方式。服务间通过RPC(如HTTP协议)实现远程调用,SpringCloud是国内广泛采用的微服务框架。对于初创项目建议先采用单体架构快速验证,待业务成熟后再逐步拆分;大型项目则可直接采用微服务架构。微服务虽解决了单体架构问题,但也带来了跨服务业务处理、运维复杂度等新挑战。
2025-12-08 09:36:45
953
原创 MySQL-01:基础知识
本文系统介绍了MySQL数据库的基础知识,主要包括四个部分:1.关系型数据库概念及SQL语言分类(DDL、DML、DQL、DCL);2.MySQL安装与基本操作命令;3.数据库核心知识,包括表操作、数据类型、约束条件、函数和多表查询(内连接、外连接、子查询等);4.事务的四大特性(ACID)及实际应用案例。文章详细讲解了SQL语法规则、常用操作命令以及数据库设计中的关键概念,为MySQL数据库的学习和使用提供了全面指导。
2025-12-07 15:02:52
946
原创 SpringBoot3-02:整合资源
本文介绍了SpringBoot整合SpringMVC、Druid和Mybatis的关键配置方法。在SpringMVC部分,重点讲解了自动配置机制、静态资源处理、拦截器实现以及核心配置参数(如端口、上下文路径等)。Druid数据源整合包括依赖引入、连接池参数配置及自动装配问题解决方案。Mybatis整合涵盖基本配置、声明式事务、AOP应用以及项目打包运行技巧,特别强调了spring-boot-maven-plugin插件的作用和java-jar命令的参数设置要点。全文提供了完整的配置示例和常见问题解决方法,为
2025-12-07 15:02:17
864
原创 SpringBoot3-01:基础入门
SpringBoot是一个简化Spring应用开发的框架,通过自动配置和约定优于配置的原则,大幅减少开发者的配置工作。它提供多种启动器(Starter)来管理依赖,支持三种内嵌服务器(Tomcat/Jetty/Undertow)。核心注解@SpringBootApplication集成了自动配置、组件扫描和配置类功能。配置文件支持properties/yaml格式,可实现多环境配置(dev/test/prod)。通过@ConfigurationProperties可批量注入配置属性,@Value用于单个属性
2025-12-07 15:01:09
726
原创 Mybatis-Plus02:高级拓展
本文介绍了数据库操作中的逻辑删除实现方法,通过添加标记字段而非物理删除数据。详细说明了乐观锁和悲观锁的区别与应用场景,重点讲解了基于版本号的乐观锁实现流程。同时介绍了MyBatis-Plus的防全表更新机制和代码生成器工具的使用。这些技术方案能有效保障数据安全、处理并发访问并提高开发效率,为数据库操作提供了完整的解决方案。
2025-12-07 15:00:16
737
原创 Mybatis-Plus01:基础知识
MyBatis-Plus是一个MyBatis增强工具,提供简化开发、提高效率的功能。摘要包含:1)入门案例,包括数据库准备、配置、实体类和Mapper接口;2)基于Mapper和Service接口的CRUD操作;3)分页查询实现;4)条件构造器的使用(QueryWrapper、UpdateWrapper及其Lambda版本);5)核心注解如@TableName、@TableId和@TableField;6)配置文件详解,包括全局配置和扩展设置。MyBatis-Plus通过内置方法、条件构造器和注解,显著简化
2025-12-05 09:32:17
434
原创 Mybatis02:核心功能
本文介绍了MyBatis框架中的多表映射、动态SQL和插件机制。多表映射部分详细说明了"对一"和"对多"关系的配置方法,包括association和collection标签的使用。动态SQL部分涵盖了if/where、set、choose/when/otherwise、foreach、trim等标签的应用场景,以及SQL片段复用技巧。插件机制部分重点介绍了Interceptor接口实现和PageHelper分页插件的配置使用,包括分页查询的实现方式。最后提及了MyBa
2025-12-05 09:31:03
742
原创 Mybatis01:基础知识
MyBatis是一款轻量级持久层框架,支持自定义SQL和高级映射,简化JDBC操作。它通过XML或注解配置Java对象与数据库记录的映射关系,实现SQL与业务代码分离。本文介绍了MyBatis快速入门步骤:1)创建数据库表;2)导入依赖;3)定义实体类和Mapper接口;4)编写XML映射文件;5)配置核心文件mybatis-config.xml。详细讲解了参数传递方式(#{}和${})、返回值处理(简单类型、实体对象、Map、List等)、主键返回以及字段映射配置。MyBatis通过核心配置文件支持多种环
2025-12-05 09:30:00
533
原创 SpringMVC02:扩展知识
本文介绍了RESTful架构风格、全局异常处理机制和拦截器的使用。RESTful通过URI表示资源,使用HTTP方法(GET/POST/PUT/DELETE)进行操作,支持JSON/XML格式和无状态通信。全局异常处理采用声明式方式,通过@RestControllerAdvice和@ExceptionHandler统一管理异常。拦截器在SpringMVC中用于预处理和后处理请求,可实现权限验证、日志记录等功能,与过滤器相比可直接获取IOC容器支持。文章还演示了参数校验的实现,使用JSR303标准注解配合Hi
2025-12-05 09:27:35
687
原创 SpringMVC-01:基础知识
摘要:SpringMVC是基于MVC模式的轻量级Web框架,通过注解简化控制器开发。核心组件包括DispatcherServlet、HandlerMapping等,实现请求处理和响应。支持多种参数接收方式(路径参数、JSON等)和响应类型(转发、重定向、JSON数据)。配置视图解析器可简化页面跳转,@ResponseBody注解实现前后端分离的JSON响应。通过WebMvcConfigurer配置静态资源处理和视图解析,替代传统Servlet开发模式。
2025-12-05 09:26:27
954
原创 Spring-04:声明式事务
编程式事务是通过代码手动控制事务的提交和回滚,具有灵活性但代码繁琐;声明式事务则通过注解或配置实现,简化了事务管理。文章介绍了Java中两种事务的实现方式,包括事务管理器的配置、声明式事务的使用示例,以及事务隔离级别和传播行为的说明。编程式事务适合精细控制,而声明式事务更利于代码的可读性和维护性。
2025-12-04 14:16:51
415
1
原创 Spring-03:AOP(面向切面编程)
面向切面编程(AOP)是一种将横切关注点(如日志、事务等)与业务逻辑分离的编程范式。通过定义切面(Aspect),AOP可以在不修改原有代码的情况下增强方法功能,降低耦合度。核心概念包括连接点(Join Point)、切入点(Pointcut)、通知(Advice)和切面(Aspect)。常见应用场景包括日志记录、事务处理、安全控制等。Spring框架通过@Aspect注解和切入点表达式实现AOP,支持前置、后置、环绕等多种通知类型。AOP利用动态代理技术,提高了代码的可维护性和复用性。
2025-12-04 14:15:56
959
原创 Spring-02:IOC/DI
本文介绍了Spring框架中的IoC(控制反转)和DI(依赖注入)概念及其实现方式。IoC容器负责管理组件的创建和依赖关系,通过XML配置或注解方式实现。XML配置包括基于构造器、静态工厂和实例工厂的三种实例化方式,以及setter和构造器两种依赖注入方式。注解方式则使用@Component及其衍生注解(@Controller、@Service、@Repository)进行组件声明,通过@Autowired、@Resource等实现依赖注入。文章还介绍了bean的作用域(singleton/prototyp
2025-12-03 09:09:17
813
原创 Spring-01:概述
摘要:Spring框架是Java企业级开发的核心技术,包含广义的Spring技术栈(如Spring Boot、Cloud等)和狭义的Spring Framework基础框架。该框架通过依赖注入、AOP等功能简化开发,具有模块化设计、丰富生态等优势,支持Web应用、微服务等场景。其核心包含容器、AOP、数据访问等模块,需要Java 17+环境,为开发者提供一站式解决方案。
2025-12-03 09:08:34
863
原创 Filter过滤器&Listener监听器
摘要:本文介绍了Java Web中的Filter和Listener两大核心组件。Filter用于拦截请求和响应,可实现编码设置、权限控制等功能,包含init、doFilter、destroy三个生命周期方法,多个Filter可形成过滤器链。Listener则用于监听ServletContext、HttpSession、ServletRequest等域对象的事件,包括创建、销毁和属性变化,典型应用如数据库连接池管理、在线用户统计等。两者通过注解(@WebFilter、@WebListener)或web.xml
2025-11-29 08:26:27
883
原创 Cookie&Session会话技术
本文介绍了Web开发中的会话机制及其实现技术。会话是指用户从打开浏览器访问服务器到关闭浏览器的整个过程,类似于一次电话通话。由于HTTP协议的无状态性,需要使用Cookie和Session来跟踪用户状态。 Cookie是客户端技术,服务器将少量数据存储在用户浏览器中,每次请求时浏览器自动发送这些数据。其特点包括大小限制(4KB)、数量限制(每个站点20个)和安全性问题。Session则是服务器端技术,为每个用户创建独享的存储空间,通过Session ID标识用户,通常借助Cookie实现ID传递。 两者区别
2025-11-29 08:25:53
1047
原创 Http&Request请求&Response响应
HTTP协议是用于服务器与客户端间传输超文本数据的应用层协议,采用请求-响应模式。主要内容包括:1)HTTP报文结构(请求行、首部、空行、主体);2)请求方法(GET/POST等)及其区别;3)状态码分类(2xx成功、3xx重定向等);4)URI/URL/URN概念;5)HTTP1.1长连接特性;6)HTTPS加密原理(SSL/TLS);7)请求转发与重定向的差异(转发是服务器内部跳转,重定向是客户端二次请求)。此外还介绍了Request/Response对象的常用API及Web开发中的典型应用场景。
2025-11-28 08:48:09
792
原创 Tomcat与Servlet基础
Tomcat 服务器是一个免费的开放源代码的Web应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。Servlet(Server Applet),全称Java Servlet。是用Java编写的服务器端程序。其主要功能在于交互式地浏览和修改数据,生成动态Web内容。狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者。
2025-11-28 08:46:35
922
原创 GIT学习
Git版本控制指南摘要 本文详细介绍了版本控制系统的作用及Git使用流程: 版本控制必要性:解决代码备份、还原、协同开发和问题追溯问题,通过4个典型开发场景说明其重要性。 版本控制类型: 集中式(SVN/CVS):需中央服务器 分布式(Git):每个开发者拥有完整仓库 Git核心优势: 强大的分支管理 分布式架构保证可靠性 更高效的性能 Git基础操作: 仓库初始化/提交/回退 分支创建/合并/冲突解决 远程仓库配置与同步(推送/拉取) 分支管理规范: master/production分支 develop
2025-11-27 08:40:35
751
原创 Maven学习
Maven是Apache维护的Java项目管理工具,通过POM(项目对象模型)实现项目构建和依赖管理。核心功能包括:1)标准化构建流程(编译、测试、打包等);2)依赖管理(自动下载jar包、解决版本冲突);3)统一项目结构。Maven通过pom.xml文件配置项目信息,使用坐标定位依赖资源,支持本地/远程/中央仓库存储。其生命周期包含clean、default、site三套阶段,通过插件实现具体任务。高级应用包括分模块开发、聚合工程、继承管理、多环境配置等功能。Maven极大简化了Java项目构建过程,是现
2025-11-27 08:39:32
810
原创 Java枚举
摘要:Java枚举(enum)是JDK1.5引入的特殊类,用于表示固定常量集合。枚举简化了常量定义,默认继承Enum类,内置values()、ordinal()和valueOf()等方法。相比传统常量类,枚举语法更简洁,支持switch语句,且能添加属性和方法。枚举广泛应用于业务场景,如状态码、错误码等定义,通过Lombok注解可进一步简化代码。合理使用枚举能提高代码可读性和可维护性。
2025-11-26 09:10:29
145
原创 Java网络编程
本文介绍了网络编程的基础知识,主要包括: 网络编程三要素:IP地址(设备标识)、端口号(应用标识)、通信协议(传输规则); IP地址操作:通过InetAddress类获取主机名和IP地址; 两种核心协议:UDP(无连接、高效但不保证可靠)和TCP(面向连接、可靠传输); UDP编程实现:包括单播、组播和广播三种通信方式,通过DatagramSocket和DatagramPacket进行数据收发; TCP编程实现:使用Socket和ServerSocket建立连接通道,通过IO流进行可靠数据传输。文章通过具体
2025-11-26 09:07:58
1051
原创 Java不可变集合与Stream流
本文介绍了Java中不可变集合和Stream流的使用。不可变集合(包括List、Set、Map)创建后内容无法修改,适合存储固定数据如游戏规则等。Stream流是Java8引入的数据处理工具,提供过滤、映射、排序等中间操作和收集、遍历等终端操作,支持链式调用和延迟执行特性。文章详细演示了如何使用Stream流进行数据处理、转换和收集,包括各种中间操作和终端操作的具体实现方式。
2025-11-25 08:35:18
805
原创 Java正则表达式
本文介绍了Java中正则表达式的基本用法,包括字符类、逻辑运算符、预定义字符、数量词、分组等功能。通过示例代码演示了如何用正则表达式验证字符串格式(如用户名、密码、邮箱等),以及String类中split()和replaceAll()方法的使用场景。文章还提供了常用正则表达式模板(如手机号、身份证校验)和在线正则生成工具。正则表达式是字符串验证的强大工具,能高效处理各种格式校验需求。
2025-11-25 08:34:09
1005
原创 Java基础-Lambda表达式与方法引用
本文介绍了Java8中的Lambda表达式及函数式编程特性。主要内容包括:1)Lambda表达式语法结构(参数列表->方法体)及简化写法;2)函数式接口的概念(仅含一个抽象方法的接口)及@FunctionalInterface注解;3)四种常见内置函数式接口的使用;4)方法引用的三种形式(对象::实例方法、类::静态方法、类::实例方法);5)构造器引用的使用方式。通过具体代码示例展示了Lambda如何简化匿名内部类写法,提升代码简洁性和可读性。文章还强调了Lambda表达式需要函数式接口支持的特性,
2025-11-24 10:26:26
882
原创 Java常用API
本文介绍了Java中常用的工具类及其主要方法。Math类提供基本数学运算方法如绝对值、取整、随机数生成等;System类包含系统操作方法如获取时间戳、数组拷贝等;Runtime类管理运行时环境;Object类是所有类的基类;Objects类提供对象操作工具;BigInteger和BigDecimal类分别用于大整数和高精度计算。这些类的常用方法包括数学运算、对象比较、内存管理等,为Java编程提供了基础工具支持。
2025-11-24 10:25:41
571
原创 Java方法
本文介绍了Java方法的基本概念和使用。方法定义包括修饰符、返回值类型、方法名、参数和方法体,必须明确返回值和参数类型。方法调用时实参需与形参匹配,void方法直接调用,非void方法建议用变量接收返回值。文章还说明了方法重载的条件:同一类中,方法名相同但参数类型或数量不同,强调重载与返回值无关。通过具体代码示例展示了方法定义、调用和重载的实际应用。
2025-11-23 11:05:17
386
原创 Java数组
本文介绍了数组的基本概念和使用方法。数组是存储同类型数据的容器,可以通过静态或动态方式初始化。静态初始化直接赋值元素,动态初始化指定长度并由系统赋默认值。数组元素通过索引访问,索引从0开始连续编号。还解释了数组地址值的含义,并指出访问越界索引会导致ArrayIndexOutOfBoundsException异常。文章简明扼要地概括了数组的定义、初始化、访问及注意事项等核心内容。
2025-11-23 11:04:39
269
CentOS7的Rdis集群部署:主从复制、哨兵机制与分片集群架构设计
2025-11-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅