自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(146)
  • 收藏
  • 关注

原创 打破僵局:深度解析数据库死锁的策略与实践(专家篇)

在多任务操作系统和数据库管理系统中,死锁是一个常见问题,它发生在两个或多个进程/线程因争夺资源而相互等待,导致系统资源无法继续执行。有效地检测和预防死锁对于确保系统稳定性和提高系统性能至关重要。本次探讨不同的死锁检测与预防策略,以及如何在实际应用中实现这些策略。

2024-07-19 09:17:50 301

原创 HandlerMethod 设计业务场景说明

`HandlerMethod` 它封装了对特定处理器方法的调用细节,包括方法的反射信息、参数解析、返回值处理等。它主要用于 Spring MVC 和 Spring WebFlux 应用程序中,基于注解的控制器方法提供支持。

2024-07-18 20:53:13 200

原创 @SessionAttributes 多个步骤订单表单业务案例

`SessionAttributes`注解它用于指定哪些模型属性应该被存储在 HTTP 会话(Session)中。这对于在多个请求之间保持数据状态非常有用,尤其是在表单提交和数据回显的场景中。

2024-07-18 20:52:33 99

原创 @ResponseStatus 特定场景业务案例

`ResponseStatus`注解,它用于表示一个方法的调用结果应该返回特定的 HTTP 状态码。这通常用于异常处理或当方法执行成功但需要通知客户端一个特定的状态时。

2024-07-18 20:52:19 128

原创 @InitBinder 注解业务应用案例

`InitBinder`注解,用于初始化 `WebDataBinder`。这通常在业务控制器中使用,以便在数据绑定到模型对象之前对请求参数进行预处理,例如格式化日期或自定义属性编辑器。

2024-07-18 18:47:50 142

原创 MethodIntrospector 你不知道的自省设计

1. **Method**:这个词来源于英语,指的是方法或函数。在编程语境中,它特指某种编程语言中定义行为的代码块,可以接收参数并执行特定的操作。1. **Introspector**:这个词来源于英语 "introspect",意味着内省或自我检查。在计算机科学中,"introspector" 通常指的是一个能够检查和分析对象内部状态的工具或机制。将这两部分组合起来,"MethodIntrospector" 可以理解为一个专门用于检查(内省)方法的内部信息的工具。`MethodIntrospec

2024-07-18 18:47:38 336

原创 稳定依赖原则(Stable Dependencies Principle):构建健壮系统的黄金法则

稳定依赖原则是软件设计中的关键原则之一,它强调依赖于稳定的抽象,而不是依赖于易变的具体实现。这一原则有助于提高软件系统的稳定性和可维护性。

2024-07-18 17:40:55 739

原创 MultipartFilter 应用场景说明

`MultipartFilter`用于处理多部分(multipart)请求的过滤器,这种请求通常用于上传文件。在 Servlet API 中,`MultipartResolver` 接口用于检测请求是否包含多媒体内容,而 `MultipartFilter` 则是一个具体的实现,用于在 Spring Web 应用程序中自动检测和处理这类请求。

2024-07-18 17:19:48 192

原创 HttpServiceProxyFactory 微服务业务远程调用案例说明

`HttpServiceProxyFactory` 使用这个工厂类来创建 HTTP 服务的代理,并实现与外部服务的交互。`HttpServiceProxyFactory` 类是一个用于创建 HTTP 服务代理的工厂类。它提供了一种机制,通过代理模式,允许开发者调用 HTTP 服务接口,就像调用本地方法一样,而实际的 HTTP 请求和响应处理则由代理对象负责。

2024-07-18 17:18:12 183

原创 HandlerMethodArgumentResolver 方法参数自动封装设计方案

`HandlerMethodArgumentResolver` 为解析控制器方法参数的核心设计。它允许开发者介入方法参数的解析过程,实现自定义的参数绑定逻辑。以下是接口方法的详细说明和业务场景示例:

2024-07-18 17:16:31 141

原创 ModelAndViewContainer 设计目的与应用场景

`ModelAndViewContainer` 是 Spring WEB 中的一个容器,它用于存储与当前请求相关的 `Model` 和 `View` 信息。这个容器在整个请求处理过程中被用来传递和存储这些信息,生命周期为直到最终确定视图用于渲染响应。

2024-07-17 13:29:17 143

原创 AsyncHandlerMethodReturnValueHandler 异步与同步返回值设计案例说明

`AsyncHandlerMethodReturnValueHandler` 它用于处理异步方法返回值的特殊情况。当控制器方法使用 `DeferredResult` 或 `Callable` 来处理异步逻辑时,这个接口允许开发者介入返回值的处理过程。

2024-07-17 13:27:28 564

原创 HandlerMethodArgumentResolver 方法参数自动封装设计方案

`HandlerMethodArgumentResolver` 为解析控制器方法参数的核心设计。它允许开发者介入方法参数的解析过程,实现自定义的参数绑定逻辑。以下是接口方法的详细说明和业务场景示例:

2024-07-17 13:26:10 300

原创 DeferredResultProcessingInterceptor 和 CallableProcessingInterceptor 异步业务场景选择方案

`DeferredResultProcessingInterceptor` 和 `CallableProcessingInterceptor` 在于异步请求处理的拦截器接口,但它们适用于不同的场景和需求。

2024-07-17 13:24:45 111

原创 CallableProcessingInterceptor 异步处理订单应用场景说明

`CallableProcessingInterceptor` 拦截器用于处理基于 `Callable` 的异步请求。这种拦截器特别适用于处理那些可能需要很长时间来完成的任务,比如执行数据库查询、调用外部服务、进行文件读写操作等,而不会阻塞服务器的线程。

2024-07-17 13:23:25 174

原创 AsyncWebRequestInterceptor 异步处理应用场景说明

`AsyncWebRequestInterceptor` 接口继承自 `WebRequestInterceptor` 并添加了一个新方法 `afterConcurrentHandlingStarted`,这表明它的设计目的是在Spring Web应用程序中处理异步请求时提供拦截能力。以下是设计思路和业务场景的思路提供:

2024-07-17 13:21:58 164

原创 WebRequestInterceptor 认证信息应用案例说明

`WebRequestInterceptor` 用于表示在Spring Web应用程序中拦截和处理Web请求的组件。基于这个概念,我们可以构建一个业务场景和关键处理代码示例。

2024-07-17 13:17:25 106

原创 ServerWebExchangeContextFilter 过滤器之间共享 `ServerWebExchange`应用案例说明

`ServerWebExchangeContextFilter` 是一个 Spring WebFlux 过滤器,它的主要作用是将当前的 `ServerWebExchange` 实例放入到 Reactor 的 `Context` 中,这样就可以在不需要显式传递 `ServerWebExchange` 的情况下,让参与请求处理的组件能够访问到它。

2024-07-17 13:15:18 342

原创 DelegatingFilterProxy 应用案例说明

`DelegatingFilterProxy`过滤器用于将请求委派给 Spring 应用程序上下文中的一个或多个其他过滤器 Bean 进行处理。这种委派机制允许开发者利用 Servlet 过滤器的丰富生态系统,同时保持 Spring 的依赖注入和其他特性。

2024-07-17 13:10:26 319

原创 CommonsRequestLoggingFilter 应用案例说明

`CommonsRequestLoggingFilter` 过滤器用于记录HTTP请求的详细信息,通常用于日志记录和问题诊断。这个过滤器是Apache Commons Logging库的一部分,Spring在内部使用它来实现请求日志记录的功能。

2024-07-17 13:08:40 272

原创 稳定抽象原则(Stable Abstractions Principle):构建可靠软件的基石

稳定抽象原则是软件设计中的一个重要概念,它强调在设计软件时应该依赖于稳定的抽象,而不是依赖于变化的具体实现。这个原则有助于提高软件的可维护性和可扩展性。

2024-07-17 12:45:57 644

原创 项目初期:架构师不要炫技,3大设计原则你不懂

架构师避免过度设计的关键在于理解真实业务需求,采用迭代和敏捷开发方法,专注于核心功能实现。通过遵循SOLID和GRASP原则、适度使用设计模式、保持设计简洁(KISS原则)、避免过早优化,以及进行持续的代码重构,架构师可以确保系统的灵活性和可维护性。同时,建立快速反馈循环、管理技术债务、进行风险评估和原型验证,都是确保设计适度且实用的重要策略。

2024-07-16 21:40:22 649

原创 最少知识原则(LKP) :构建低耦合系统的秘诀

最少知识原则,也称为迪米特法则(Law of Demeter, LoD),是一种软件设计原则,它指导我们减少对象之间的交互,使得每个对象只需与其直接的合作伙伴通信,而不必关心合作伙伴的内部细节。

2024-07-16 17:48:56 703

原创 YAGNI(You Aren‘t Gonna Need It)原则:让你专注当下,未来不必预设

YAGNI(You Aren't Gonna Need It)原则是极限编程(XP)中的一项核心实践,它告诫开发者只实现当前需要的功能,避免过度设计和提前优化。这个原则帮助团队集中精力解决实际问题,而不是预测未来可能的需求。

2024-07-16 15:52:27 530

原创 DRY(Don‘t Repeat Yourself)原则:拒绝重复,拥抱简洁软件黄金法则

DRY(Don't Repeat Yourself)原则是软件开发中的一个基本原则,它强调在代码库中避免重复代码,以减少维护成本和提高代码质量。

2024-07-16 12:25:40 712

原创 ServerHttpObservationFilter 监控服务性能应用案例

`ServerHttpObservationFilter` 是一个继承自 `OncePerRequestFilter` 的Spring框架过滤器类。这个过滤器的目的是用于观察和记录HTTP请求和响应的相关数据,通常用于监控、日志记录、性能评估等场景。它使用 `ObservationRegistry` 来注册和存储观察结果,并可以自定义观察约定(`ServerRequestObservationConvention`)。

2024-07-16 11:21:40 281

原创 CompositeFilter CSRF保护业务场景说明

`CompositeFilter` 过滤器,用于将多个过滤器组合成一个单独的过滤器。在 Spring Security 的过滤器链中,它允许你将多个安全相关的过滤器逻辑组合起来,以简化配置和提高效率。

2024-07-16 10:32:40 429

原创 DelegatingFilterProxy 委派机制应用案例说明

`DelegatingFilterProxy`过滤器用于将请求委派给 Spring 应用程序上下文中的一个或多个其他过滤器 Bean 进行处理。这种委派机制允许开发者利用 Servlet 过滤器的丰富生态系统,同时保持 Spring 的依赖注入和其他特性。

2024-07-16 09:20:41 212

原创 CommonsRequestLoggingFilter 启用请求日志记录应用案例说明

`CommonsRequestLoggingFilter` 过滤器用于记录HTTP请求的详细信息,通常用于日志记录和问题诊断。这个过滤器是Apache Commons Logging库的一部分,Spring在内部使用它来实现请求日志记录的功能。

2024-07-15 23:09:46 301

原创 ServerHttpObservationFilter 服务性能监控应用案例说明

`ServerHttpObservationFilter` 是一个继承自 `OncePerRequestFilter` 的Spring框架过滤器类。这个过滤器的目的是用于观察和记录HTTP请求和响应的相关数据,通常用于监控、日志记录、性能评估等场景。它使用 `ObservationRegistry` 来注册和存储观察结果,并可以自定义观察约定(`ServerRequestObservationConvention`)。

2024-07-15 23:07:26 336

原创 CorsFilter 跨域请求安全限制应用案例分析

`CorsFilter` 用于处理跨源资源共享(CORS)的过滤器。它允许配置CORS策略,使得服务器能够响应来自不同源的请求。

2024-07-15 23:05:19 611

原创 RelativeRedirectFilter 登录后重定向应用案例

`RelativeRedirectFilter` 用于处理相对路径重定向的过滤器,它特别适用于将重定向路径转换为相对于原始请求的完整URL的场景。以下是`RelativeRedirectFilter`的业务场景和关键处理代码。

2024-07-15 23:03:42 282

原创 RequestContextFilter 本地化信息应用案例说明

`RequestContextFilter` 过滤器用于为每个HTTP请求设置`RequestContext`。这个`RequestContext`是Spring提供的一个用于保存请求相关数据的上下文,比如主题(theme)、本地化信息(locale)、错误信息等。`RequestContextFilter`通常用于确保这些数据在整个请求处理过程中保持一致,并且可以在不同的Spring MVC控制器之间共享。

2024-07-15 23:02:12 282

原创 FormContentFilter 表单数据应用案例说明

`FormContentFilter` 是Spring框架中用于处理表单提交内容的过滤器,特别是当表单数据以`application/x-www-form-urlencoded`方式提交时。这个过滤器可以确保请求体中的表单数据被正确地读取和解析,然后将其转换为`ServletRequest`的参数。

2024-07-15 22:59:51 207

原创 CharacterEncodingFilter 统一的字符编码应用案例说明

`CharacterEncodingFilter` 是Spring框架中的一个实用过滤器,用于统一设置请求和响应的字符编码。这确保了在整个请求处理过程中,数据能够以正确的编码进行传输和处理,从而避免了字符编码问题导致的乱码现象。

2024-07-15 22:55:18 144

原创 HiddenHttpMethodFilter 应用案例说明

`HiddenHttpMethodFilter` 是Spring框架中的一个过滤器,用于处理HTTP请求中的特殊查询参数(如 `_method`),以允许通过GET或POST请求模拟其他HTTP方法,如PUT或DELETE。这种技术通常用于不支持PUT或DELETE方法的HTML表单。

2024-07-15 22:52:18 327

原创 架构师通过合作式锁定协议——保证数据库底层持久化的安全方案

在数据库系统中,为了确保数据的一致性和完整性,需要一种机制来防止多个进程同时写入数据库,这就需要使用文件锁。这里提到的“它使用合作式锁定协议”,意味着系统中的各个进程需要相互合作,遵守同一套规则来决定哪个进程可以持有锁,进而执行写操具体来说,当一个进程想要对数据库进行写操作时,它必须首先请求锁。如果锁可用,该进程将获得锁并执行写操作。操作完成后,进程必须释放锁,以便其他进程可以请求并获取锁,执行它们自己的写操作。

2024-07-15 08:00:00 532

原创 DDD领域模型:在智慧城市交通系统区分核心/通用/支撑域案例分析

智慧城市交通系统结合领域驱动设计(DDD)的改造,是一种以业务领域为核心的系统设计方法,它通过创建高度内聚、低耦合的软件模型来应对复杂的业务逻辑。以下是智慧城市交通系统结合DDD改造成果,提供给新手参考,而非标准,主要解释了核心域、通用域、支撑域的划分方式:

2024-07-14 16:53:59 966

原创 KISS原则(Keep It Simple, Stupid):可以用来Dis 架构师的过度设计

KISS(Keep It Simple, Stupid)原则,即“保持简单,愚蠢”原则,是一种提倡在设计过程中保持简洁性的软件开发理念。这个原则鼓励开发者避免不必要的复杂性,专注于最直接、最清晰的解决方案。

2024-07-14 14:00:56 767

原创 服务定位器模式(Service Locator Pattern): 微服务配置管理实战案例分析

在微服务架构中,配置管理是一个关键需求。服务定位器模式提供了一种在运行时检索服务对象的方法,适用于管理微服务中的配置信息。

2024-07-14 11:40:02 777

关系型数据库对应的设计

关系型数据库对应的设计

2024-07-13

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除