
微服务相关技术
文章平均质量分 93
介绍springboot,springcloud技术栈相关内容,以及实际开发过程中组件的使用, 自定义组件的开发等
问道飞鱼
长期从事服务后端开发,擅长微服务高并发架构设计, 熟悉云原技术栈,可以提供完整后端解决方案。
展开
-
【Springboot知识】Springboot配置加载机制深入解读
Spring Boot 配置加载机制详解Spring Boot 的配置加载机制采用层级化优先级策略,支持从多种来源(如配置文件、环境变量、命令行参数等)加载配置,并按优先级从低到高的顺序覆盖同名配置。一、配置加载顺序(优先级由低到高)Spring Boot 按以下顺序加载配置,后加载的配置会覆盖前面的同名属性配置来源说明1.类上的通过注解显式指定配置文件(如2. 应用默认属性(通过代码设置的默认属性,优先级最低。3.项目resources目录下的 YAML 格式配置文件(支持多环境 Profile)。原创 2025-04-11 18:45:00 · 977 阅读 · 0 评论 -
【Springboot知识】Springboot进阶-Micrometer指标监控深入解析
在 Spring Boot 中自定义 Micrometer 的核心是创建自定义的或自定义指标采集逻辑。一、自定义 MeterRegistry(监控数据上报)1. 实现自定义注册中心// 设置命名规则(如转驼峰为下划线)start();// 启动后台线程@Override// 自定义上报逻辑(例如将指标发送到 Kafka 或 HTTP API)// 其他 Meter 类型处理...});@Override// 定义时间单位。原创 2025-04-09 18:47:15 · 1087 阅读 · 0 评论 -
【Springboot知识】Spring Batch批处理框架深入解析
Spring Boot 提供了对批处理框架的集成支持,使得开发者可以轻松构建高效、可扩展的批处理任务。// 省略 getter/setter 和构造方法@Autowired@Autowired@Bean.incrementer(new RunIdIncrementer()) // 允许 Job 多次执行.end().build();@Bean.<Person, Person>chunk(10) // 每处理 10 条数据提交一次.build();适用场景。原创 2025-03-29 11:45:00 · 838 阅读 · 0 评论 -
【web应用安全】关于web应用安全的几个主要问题的思考
XSS攻击的本质是。原创 2025-03-28 20:50:26 · 1109 阅读 · 0 评论 -
【Springboot知识】springboot进阶-密码加密组件Jasypt的使用
一、Jasypt 简介Jasypt是一个 Java 加密库,专为简化敏感数据加密而设计,支持等多种算法,可与 Spring Boot 深度集成,实现密钥的动态加密和解密。其核心优势是支持加密密钥的加密存储(即密钥本身也有密钥保护),避免硬编码密钥的风险。二、依赖引入在pom.xml中添加 Jasypt Spring Boot Starter:-- 最新稳定版 --> </ dependency >-- 最新稳定版 --> </ dependency ></原创 2025-03-26 12:25:11 · 989 阅读 · 0 评论 -
【Springboot知识】springboot进阶-常见扩展点说明
在 Spring Boot 应用启动完成后执行一次性初始化任务(如加载配置、初始化数据库、注册第三方服务等)。在 Spring Bean 初始化前后插入自定义逻辑(如属性注入、校验、AOP 拦截)。在 Spring 容器加载 Bean 定义后动态注册新的 Bean(如插件化扩展)。在 Servlet 容器启动时执行初始化逻辑(如加载配置、注册 Servlet)。自定义 Spring MVC 的配置(如拦截器、静态资源映射、HTTP 编码)。• 高并发场景下的异步任务处理(如短信发送、文件上传)。原创 2025-03-26 17:45:00 · 1525 阅读 · 0 评论 -
【Springboot知识】Springboot结合Apollo实现配置管理
通过以上步骤和注意事项,可以高效地在Spring Boot中集成Apollo配置中心,实现配置的集中管理和动态更新。通过合理配置这些参数,可以充分发挥Apollo配置中心的优势,实现高效、安全的配置管理。在需要动态刷新的Bean上添加。原创 2025-03-24 17:45:00 · 1031 阅读 · 0 评论 -
【Springboot知识】开发属于自己的中间件健康监测HealthIndicate
如果需要扩展自定义接口,可通过。原创 2025-03-15 09:50:20 · 1086 阅读 · 0 评论 -
【Springboot知识】springboot的Health Indicator介绍
是 Spring Boot Actuator 模块的核心组件,用于监控应用的健康状态。它通过。原创 2025-03-13 06:29:06 · 805 阅读 · 0 评论 -
【Springboot知识】Logback从1.2.x升级到1.3.x需要注意哪些点?
需要做出以下改动和注意点,具体取决于你的项目环境(例如是否使用了 Spring Boot)。通过以上步骤,你可以顺利将 Logback 从 1.2.x 升级到 1.3.x,同时确保项目的稳定性和安全性。原创 2025-02-26 22:51:55 · 882 阅读 · 0 评论 -
【Springboot知识】多模块Springboot项目配置Jacoco代码覆盖率
在 Spring Boot 多模块项目中配置 JaCoCo(Java Code Coverage)可以实现对代码覆盖率的统计和分析。以下是一个完整的配置指南,帮助你在多模块项目中正确配置 JaCoCo。1. 项目结构示例├── parent (父模块)├── module-a (模块 A)├── module-b (模块 B)└── module-c (模块 C)parent是父模块,定义了所有子模块的依赖管理和插件配置。module-amodule-b和module-c是具体的业务模块。原创 2025-02-24 22:24:49 · 1529 阅读 · 0 评论 -
【Springboot知识】从零开始配置springfox
你可以根据需要进一步自定义Swagger的配置。例如,添加全局的请求参数、响应消息等。通过以上步骤,你可以在Spring Boot项目中成功配置Springfox(Swagger),并生成API文档。你可以根据需要进一步自定义Swagger的配置,以满足项目的需求。通过以上配置,你可以将Swagger相关的路径加入Spring Security的忽略登录列表,确保Swagger UI和API文档可以无需登录即可访问。原创 2025-02-15 20:42:56 · 1146 阅读 · 0 评论 -
【Spring相关知识】Spring Cloud Sleuth上下文信息传递
Spring Cloud Sleuth 默认会传递 Trace ID 和 Span ID,但你可以通过Tracer和Baggage来传递自定义数据。你可以使用Tracer// 创建一个新的 Span Span newSpan = tracer . nextSpan() . name("custom-span") . start();// 添加自定义标签 newSpan . tag("custom-tag" , "custom-value");原创 2025-02-12 11:45:00 · 906 阅读 · 0 评论 -
【Spring相关知识】Spring应用如何优雅使用消息队列
是一个用于构建消息驱动微服务的框架,它基于和,提供了与消息中间件(如 Kafka、RabbitMQ 等)的集成。通过 Spring Cloud Stream,开发者可以轻松地将消息传递机制引入到微服务架构中,而无需直接与底层消息中间件交互。核心概念BinderBinder 是 Spring Cloud Stream 的核心组件,用于与消息中间件(如 Kafka、RabbitMQ)集成。它抽象了底层消息中间件的细节,开发者只需通过配置即可切换不同的消息中间件。或。Binding。原创 2025-02-08 20:32:50 · 1201 阅读 · 0 评论 -
【Springboot相关知识】Springboot结合SpringSecurity实现身份认证以及接口鉴权
通过以上步骤,我们实现了一个基于Spring Security和JWT的身份认证和接口鉴权系统,并支持Token刷新。你可以根据实际需求进一步扩展和优化这个系统。在Spring Security中,角色和权限通常通过实现类来定义。我们可以为用户分配角色或权限,然后在接口上使用注解进行鉴权。在} else {} } }} else {} } }} else {} } }} else {} } }} else {原创 2025-01-21 17:45:00 · 1638 阅读 · 0 评论 -
【Springboot知识】Springboot结合redis实现分布式锁
首先定义一个自定义注解,允许通过SpEL表达式指定锁的值。通过以上步骤,我们实现了一个基于SpringBoot和Redis的分布式锁,并通过注解和SpEL表达式灵活地指定锁的值。这个实现方案可以用于保护分布式系统中的临界资源,防止并发访问导致的数据不一致问题。原创 2025-01-21 06:00:00 · 817 阅读 · 0 评论 -
【分布式知识】Spring Cloud Gateway实现跨集群应用访问
通过上述步骤,你可以使用SpringBoot和SpringCloudGateway实现跨集群的应用访问。关键在于正确配置服务注册中心、Gateway以及路由规则,并确保服务实例能够跨集群注册和发现。同时,合理的负载均衡和容错机制也是确保系统稳定性的关键。原创 2025-01-19 18:57:29 · 1231 阅读 · 0 评论 -
【分布式技术】Springboot集成zookeeper
虽然Spring Cloud提供了与Eureka、Consul和ZooKeeper等服务发现工具的集成,但需要注意的是,Spring Cloud ZooKeeper并不是Spring Cloud官方维护的一个子项目,而是由社区维护的。应用启动后,它应该会自动注册到Zookeeper中,并且你可以使用Zookeeper的客户端工具或Spring Cloud提供的工具来查看注册的服务实例。在你的Spring Boot应用中,你需要创建一个配置类来定义Zookeeper客户端的Bean。原创 2025-01-07 06:15:00 · 1465 阅读 · 0 评论 -
【Springboot知识】Springboot集成assembly打包组件
在提及“assembly配置文件内容”时,如果这一术语是在Spring Boot或Java应用的上下文中使用,它可能指的是与应用的打包、部署或特定于assembly插件的配置相关的文件。然而,如果你需要自定义打包过程(如包含额外的文件、设置特定的打包格式等),你可以使用Maven的assembly插件,并编写相应的assembly配置文件。在Spring Boot项目中集成Assembly,通常指的是使用Maven的Assembly插件来根据不同的环境和需求,对项目进行自定义的打包。原创 2025-01-03 19:55:11 · 1094 阅读 · 0 评论 -
【Springboot知识】Springboot进阶-实现CAS完整流程
验证成功后,您可以设置用户的会话信息,并重定向到前端应用的首页或其他页面。由于这些配置可能相对复杂,并且具体实现可能因CAS版本和Spring Boot版本的不同而有所差异,因此建议查阅CAS官方文档和Spring Boot相关配置指南来获取更详细的配置信息。由于CAS集成涉及到多个方面的配置和代码实现,并且具体实现可能因CAS版本、Spring Boot版本以及您的具体需求而有所不同,因此建议查阅CAS官方文档和Spring Security相关配置指南来获取更详细的配置信息和代码示例。原创 2024-12-27 20:35:20 · 1870 阅读 · 0 评论 -
【Springboot知识】Springboot进阶-优雅停机是如何实现的?
在Spring Boot应用程序中,优雅停机(Graceful Shutdown)是指应用程序在接收到停机指令后,能够有序地完成当前正在处理的任务,然后安全地关闭。这通常涉及到停止接受新的请求、等待正在处理的请求完成、释放资源等步骤。Spring Boot 2.3及更高版本提供了对优雅停机的内置支持。在Spring Boot中,自定义停机逻辑可以通过多种方式实现,以满足特定应用场景下的需求。原创 2024-12-27 06:15:00 · 1227 阅读 · 0 评论 -
【Springboot知识】Springboot进阶-Actuator深入理解
概述一、主要功能二、启用与配置三、安全性四、应用场景主要功能有哪些?自定义Actuator一、创建自定义端点类二、配置自定义端点三、测试自定义端点四、示例代码Spring Boot Actuator是Spring Boot提供的一个模块,为开发人员提供了生产级的功能,无需编写额外的代码。在Spring Boot中,自定义Actuator端点是一种扩展Actuator功能的方式,可以满足特定的监控和管理需求。使用@Endpoint注解在自定义端点类上使用@Endpoint注解进行标记,并指定端点的ID。原创 2024-12-26 11:30:00 · 2148 阅读 · 0 评论 -
【Springboot知识】Springboot基础-过滤器与拦截器开发
过滤器是Servlet API的一部分,它基于Java Servlet规范中的Filter接口实现。记录请求和响应的日志。进行身份认证与授权。输入/输出数据验证。修改请求或响应。原创 2024-12-26 06:15:00 · 1500 阅读 · 0 评论 -
【Springboot知识】springboot-data-redis模块详细介绍
Spring Boot Data Redis 是 Spring Boot 提供的一个用于简化 Redis 数据库集成的启动器(Starter)。Spring Boot Data Redis 基于 Spring Data 项目,为 Redis 提供了高层次的抽象。它简化了 Redis 数据的访问,并支持 Redis 的各种数据类型和操作。通过使用 Spring Boot Data Redis,开发者可以快速地在 Spring Boot 应用程序中集成和使用 Redis 数据库。原创 2024-12-24 06:15:00 · 749 阅读 · 0 评论 -
【Springboot知识】Springboot基础-参数校验器使用
Spring Boot提供了多种内置的校验注解,如@NotNull、@NotEmpty、@NotBlank、@Email、@Max、@Min等,这些注解可以直接用于实体类的字段上,以指定字段的校验规则。在实体类中使用上述校验注解来定义字段的校验规则。@NotNull(message = "ID不能为空") @Min(value = 1 , message = "ID必须大于0") private Integer id;原创 2024-12-23 06:15:00 · 273 阅读 · 0 评论 -
【Spring知识】Spring知识体系
定义SpringMVC(Model-View-Controller)是一个基于MVC设计模式的框架,它将应用程序分为模型(Model)、视图(View)和控制器(Controller)三部分。MVC设计模式Model:表示应用程序的数据和业务逻辑。包括实体类Bean(专门存储业务数据,如Student、User等)和业务处理Bean(指Service或Dao对象,专门用于处理业务逻辑和数据访问)。View:负责呈现数据的用户界面。通常指工程中的HTML或JSP等页面。Controller。原创 2024-12-19 06:15:00 · 935 阅读 · 0 评论 -
【Spring相关技术】Spring进阶-SpEL深入解读
SPEL是Spring Expression Language的缩写,意为Spring表达式语言。它是Spring Framework中的一个核心技术,主要用于在运行时查询和操作对象图。在Spring Expression Language(SpEL)中,自定义功能主要涉及到自定义函数、变量以及注解中使用SpEL表达式。SpEL允许你注册自定义函数,这些函数通常是静态方法。你可以通过的方法来注册自定义函数。在这个例子中,我们注册了方法作为一个自定义函数parseInt。原创 2024-12-17 06:15:00 · 1437 阅读 · 0 评论 -
【Springboot知识】Springboot进阶-如何有效防止XSS攻击
综上所述,防止XSS攻击需要采取多种措施,包括输入验证和过滤、输出编码、使用安全框架、使用模板引擎的自动转义功能以及设置安全HTTP头等。Spring Security是一个功能强大的安全框架,可以用于保护应用程序免受各种安全威胁,包括XSS攻击。可以使用一些开源的XSS过滤器,如OWASP Java Encoder,对用户输入进行过滤,防止恶意脚本注入。在Spring Boot项目中配置Spring Security通常涉及到创建一个安全配置类,并在这个类中定义相关的安全规则。到安全链中,但实际上。原创 2024-11-27 20:25:47 · 2039 阅读 · 0 评论 -
【微服务知识】开源RPC框架Dubbo入门介绍
Dubbo是一个开源的、基于Java的高性能RPC(远程过程调用)框架,最初由阿里巴巴开发,现已成为Apache顶级项目。Dubbo主要用于构建微服务架构中的分布式服务治理系统。它通过高效的远程调用、服务治理、负载均衡、服务发现等功能,帮助开发者简化分布式系统的开发和管理。在这个接口将被提供者和消费者共同使用,因此两者都需要依赖这个模块。原创 2024-11-11 17:00:46 · 871 阅读 · 0 评论 -
【SpringCloud知识】springcloud生态rpc组件openfeign详细介绍
OpenFeign 是 Spring Cloud 生态系统中的一个声明式 Web 服务客户端,它使得编写 Web 服务客户端变得更加容易。OpenFeign 是一个声明式的 Web 服务客户端,它允许开发者通过定义 Java 接口和使用注解的方式来声明 HTTP 请求,从而简化了与 HTTP 服务的交互。要自定义Feign的Encoder和Decoder,你需要实现Feign提供的Encoder和Decoder接口。实现Encoder接口:创建一个类实现接口,并重写encode方法。原创 2024-11-05 23:11:06 · 1441 阅读 · 0 评论 -
【Spring知识】Spring cloud gateway使用详解
Spring Cloud Gateway 是Spring Cloud生态系统中的一个项目,它是基于Spring Framework 5、Reactor和Spring Boot 2.0构建的。它旨在为微服务架构提供一种简单而有效的API路由管理方式,并且基于Filter的方式提供网关的基本功能,如安全认证、监控、限流等。响应式编程模型Spring Cloud Gateway是基于Spring WebFlux框架开发的,它支持响应式编程模型。原创 2024-11-01 11:00:00 · 1062 阅读 · 0 评论 -
【Spring知识】Spring Starter内核spring.factories的工作机制
你也可以创建自己的自动配置模块,并通过文件将其注册到 Spring Boot 中。文件是 Spring Boot 自动配置机制的重要组成部分。通过这个文件,Spring Boot 可以在启动时自动加载和配置一系列预定义的类,从而简化了应用程序的初始化过程。希望这个详细的解释能帮助你更好地理解的工作原理。如果有任何问题或需要进一步的帮助,请随时提问!原创 2024-10-28 08:08:47 · 930 阅读 · 0 评论 -
【知识科普】简单聊聊日志脱敏技术
开发自定义的脱敏策略,例如,可以基于数据的类型(如邮箱、手机号等)来应用不同的脱敏规则。原创 2024-10-25 23:52:29 · 1250 阅读 · 0 评论 -
【Mybatis相关】好用的分页插件PageHelper
通过PageHelper,你可以非常方便地在 MyBatis 中实现分页查询。它不仅简化了分页逻辑的编写,还提供了丰富的配置选项,使得分页功能更加灵活和强大。希望这个示例和解释能帮助你更好地理解和使用PageHelper。如果有任何问题或需要进一步的帮助,请随时提问!原创 2024-10-21 23:10:55 · 569 阅读 · 0 评论 -
【springboot知识】如何提升系统并发-异步响应
Spring Boot中的异步响应是通过@Async注解实现的,它允许你以非阻塞方式执行任务,从而提高应用程序的响应性和吞吐量。原创 2024-10-20 17:19:07 · 856 阅读 · 0 评论 -
【微服务知识】springboot多维度性能监控
创建一个切面类,并使用@Aspect注解标记。在这个类中,你可以定义切入点和通知。使用@Pointcut注解来定义一个切入点,这通常是一个表达式,用于匹配你想要监控的方法。@Aspect@Component想进行更多方面的性能监测, 可以定义更多的切入点。原创 2024-10-17 16:00:17 · 951 阅读 · 0 评论 -
【后端知识】Mockito,PowerMock结合TestNG框架实现复杂单元测试
Mockito 是一个强大的工具,能够帮助开发者轻松地进行单元测试,特别是在处理复杂依赖时。通过 Mock 对象,可以有效地隔离被测试的代码,提高测试的独立性和可控性。原创 2024-10-17 06:00:00 · 158 阅读 · 0 评论 -
【spring知识】Spring Security从入门到放弃
Spring Security是一个功能强大且高度可定制的身份验证和访问控制框架。它专注于基于Spring的应用程序,并充分利用了Spring的依赖注入(DI)特性,为Java应用程序提供全面的安全服务。:这是身份验证策略的核心接口,它只有一个方法,用于验证提交的凭证。:这是一个用于检索用户特定数据(如权限)的接口。Spring Security提供了多种实现,包括基于内存的用户详细信息服务和基于数据库的服务。原创 2024-10-16 06:00:00 · 1311 阅读 · 0 评论 -
【知识科普】单元测试框架TestNG介绍
TestNG是一个开源的自动化测试框架,它在JUnit和NUnit的基础上增加了很多强大的功能,使其更加灵活和强大。TestNG的灵感来源于JUnit,但它并不是JUnit的扩展,而是一个全新的框架。TestNG的创建者是Cedric Beust,它的设计目标是消除旧框架的大部分限制,使开发人员能够编写更灵活、更强大的测试。注解驱动:TestNG使用注解来配置测试用例,使得测试代码更加简洁明了。支持多种测试类型:TestNG不仅支持单元测试,还支持集成测试、端到端测试等多种类型,满足更广泛的测试需求。原创 2024-10-15 20:30:59 · 1347 阅读 · 0 评论 -
【Spring相关技术】spring进阶-自定义请求报文转对象HttpMessageConverter
首先,我们创建一个类,继承自@Override> clazz) {@Override// 假设MyObject的构造函数接受一个字符串@Override// 假设我们要将MyObject转换成字符串进行输出接下来,我们需要在Spring MVC的配置中注册我们的自定义转换器。如果你使用的是Java配置,可以像下面这样实现@Override// 如何自定义的转换器与默认转换器冲突,可以将自己的转换器放到默认转换器前面。原创 2024-10-14 19:39:14 · 1616 阅读 · 0 评论