皮皮网

【排盘网源码】【党校java源码】【nacos源码idea】spring 适配器 源码_springmvc适配器模式源码分析

时间:2024-11-26 18:50:31 分类:综合 来源:上海男人吃溯源码燕窝

1.Spring Boot六边形架构 | by Murad
2.spring cloud有哪些组件
3.SpringBoot之HandlerInterceptorAdapter

spring 适配器 源码_springmvc适配器模式源码分析

Spring Boot六边形架构 | by Murad

       本文将详细介绍六边形架构的适配适配式源概念,并通过构建一个 Spring Boot 应用程序来展示其应用。器源器模六边形架构,码s码分也被称为端口和适配器架构,适配适配式源旨在通过构建松散耦合的器源器模应用程序组件来提高系统的一致性,这些组件可以通过端口和适配器轻松地与软件环境连接。码s码分排盘网源码通过采用六边形架构,适配适配式源领域对象成为了组件间依赖关系的器源器模焦点,端口和适配器用于主程序和外部组件之间的码s码分通信。这种设计风格强调分离域与所有依赖项,适配适配式源包括框架依赖项,器源器模这使得领域逻辑不受技术栈变化影响。码s码分通过将域与依赖项分离,适配适配式源可以更轻松地测试域,器源器模且更换适配器变得简单。码s码分六边形架构提供了两种业务接口,以允许外部各方与域进行通信。

       领域对象构成了应用程序的核心部分,包括业务验证和产品信息,党校java源码不受外部组件影响。它们遵循单一职责原则,仅在业务需求发生变化时发生变化。在构建应用程序时,选择 Java 和 Maven 作为 Spring Boot 的基础,手动创建项目框架,以与 Spring 初始化器提供的架构有很大不同。使用六边形架构构建图书馆应用程序,限制活动与特定的nacos源码idea ActivityWindow 相关联,以避免加载给定帐户的所有活动。Account 类包含基线 Balance 属性,用于计算帐户的总余额。通过移除领域对象对外部架构级别的依赖,可以自由地对代码进行建模,而无需担心修改。外部库可以在领域模型中使用,但应保持稳定,以防止频繁修改代码。动力DIF源码例如,使用 Lombok 注释来简化代码。为了在两个账户之间转移资金,开发了一个用例类来管理此操作。通过使用六边形架构,输入端口允许核心应用程序被外部组件调用,输出端口则用于与外部组件交互,适配器则实现与外部环境的连接。

       在六边形架构中,多多视频源码主要适配器(输入或驱动适配器)使用入端口调用核心应用程序的用例,例如 Web 界面或 REST API。持久化适配器则通过实现输出端口的接口,与数据库交互,例如使用 Spring Data JPA 管理持久性。通过这种方式,应用程序的领域逻辑与外部环境隔离,提高了系统的可测试性和适应性。六边形架构相较于其他架构模式,提供了多个优势,尤其在创建领域驱动的应用程序时显得尤为有用。总的来说,六边形架构为构建松散耦合、易于测试且可扩展的应用程序提供了一种强大的设计方法。

spring cloud有哪些组件

       Spring Cloud框架包含了丰富的组件,它们为构建分布式应用提供了强大支持。以下是其中的主要组件,它们各自扮演着关键角色:

       1. 前端控制器组件:DispatcherServlet是Spring MVC的核心,它负责接收HTTP请求并将其转发到相应的处理器。

       2. 处理器组件(Controller):Controller是应用程序的逻辑处理中心,接收请求并生成响应。

       3. 处理器映射器组件(HandlerMapping):负责将请求映射到具体的Controller,实现请求到处理的路由。

       4. 处理器适配器组件(HandlerAdapter):适配器确保Controller的处理逻辑可以被正确地执行和转换。

       5. 拦截器组件(HandlerInterceptor):可以在请求处理前后添加额外的功能,如权限验证、日志记录等。

       6. 视图解析器组件(ViewResolver):解析并选择合适的视图技术(如JSP、Thymeleaf等),以生成最终的用户界面。

       7. 视图组件(View):负责生成和渲染最终的用户界面,将数据绑定到HTML模板上。

       8. 数据转换组件(DataBinder):处理HTTP请求中的数据绑定,确保数据的正确性和一致性。

       9. 消息转换器组件(HttpMessageConverter):负责在HTTP请求和Java对象之间进行数据格式转换,如JSON、XML等。

       通过这些组件的组合,Spring Cloud为开发者提供了高效、灵活的分布式应用开发平台。理解并熟练运用这些组件,是构建高效Spring Cloud应用的基础。

SpringBoot之HandlerInterceptorAdapter

        在SpringBoot中我们可以使用HandlerInterceptorAdapter这个适配器来实现自己的拦截器。这样就可以拦截所有的请求并做相应的处理。

        应用场景

        在HandlerInterceptorAdapter中主要提供了以下的方法:

        preHandle:在方法被调用前执行。在该方法中可以做类似校验的功能。如果返回true,则继续调用下一个拦截器。如果返回false,则中断执行,也就是说我们想调用的方法 不会被执行,但是你可以修改response为你想要的响应。

        postHandle:在方法执行后调用。

        afterCompletion:在整个请求处理完毕后进行回调,也就是说视图渲染完毕或者调用方已经拿到响应。

        在HandlerInterceptorAdapter中主要提供了以下的方法:

        HandlerInterceptor

        拦截器适配器HandlerInterceptorAdapter

        有时候我们可能只需要实现三个回调方法中的某一个,如果实现HandlerInterceptor接口的话,三个方法必须实现,不管你需不需要,此时spring提供了一个HandlerInterceptorAdapter适配器(种适配器设计模式的实现),允许我们只实现需要的回调方法。

        这样在我们业务中比如要记录系统日志,日志肯定是在afterCompletion之后记录的,否则中途失败了,也记录了,那就扯淡了。一定是程序正常跑完后,我们记录下那些对数据库做个增删改的操作日志进数据库。所以我们只需要继承HandlerInterceptorAdapter,并重写afterCompletion一个方法即可,因为preHandle默认是true。

        运行流程总结如下:

        下面用一个demo来演示执行流程

       

定义一个类继承HandlerInterceptorAdapter,并重写方法

       

        快捷键ctrl+o打开可以重写的方法面板选择

        WebMvcConfigurerAdapter 抽象类是对WebMvcConfigurer接口的简单抽象(增加了一些默认实现),但在在SpringBoot2.0及Spring5.0中WebMvcConfigurerAdapter已被废弃 。官方推荐直接实现WebMvcConfigurer或者直接继承WebMvcConfigurationSupport

        实现WebMvcConfigurer配置拦截器

        在控制器中写一个方法并访问

        会在控制台输出

        此时在加入一个拦截器,会按照配置的顺序执行,配置如下

        控制的输出反映了配置多个拦截器的执行流程:

        如果controller出现异常,则不会继续执行postHandle,只会倒序执行afterCompletion方法

        咱们下期见。

copyright © 2016 powered by 皮皮网   sitemap