网站首页 > java教程 正文
面试官的问题确实是在考察你对 Spring Cloud Gateway 和 MyBatis 的底层实现及设计模式的了解。
Spring Cloud Gateway 底层实现
- 底层框架:Spring Cloud Gateway 基于 Spring WebFlux 框架实现。WebFlux 底层使用了高性能的 Reactor 模式通信框架 Netty。
- 性能:支持的请求数大约在 1W~1.5W 左右,性能比 Zuul 高很多。
- 功能:提供统一的路由方式。基于 Filter 链提供网关基本功能,如安全、监控/指标、限流等。
- 工作原理:客户端发送请求到 Gateway。Gateway 根据配置的路由规则将请求转发到目标服务。目标服务处理请求并返回响应,Gateway 将响应返回给客户端。在这个过程中,Filter 链会处理请求和响应的预处理和后处理。
MyBatis 底层模板模型
- 设计模式:MyBatis 底层模板模型结合了建造者模式(Builder Pattern)和模板方法模式(Template Method Pattern)。
- 建造者模式:用于创建 SqlSessionFactory 和 SqlSession 对象。SqlSessionFactoryBuilder 用于创建 SqlSessionFactory 对象。SqlSessionFactory 对象再创建 SqlSession 对象。
- 模板方法模式:用于执行 SQL 语句和处理结果集。SqlSession 对象通过 Executor 接口来执行 SQL 语句。Executor 接口的实现类会调用 StatementHandler、ParameterHandler、ResultSetHandler 和 TypeHandler 来处理 SQL 相关的操作。
- 工作流程:解析配置文件(如 mybatis-config.xml)和映射文件(如 Mapper XML 文件)。构建 Configuration 对象,该对象包含了 MyBatis 的全局配置和映射信息。通过 SqlSessionFactoryBuilder 创建 SqlSessionFactory 对象。使用 SqlSessionFactory 创建 SqlSession 对象。SqlSession 对象调用 Executor 接口的方法执行 SQL 语句,并通过相关的 Handler 处理参数和结果集。
- 组件:XMLConfigBuilder 和 XMLMapperBuilder 用于解析配置文件和映射文件。SqlSessionFactoryBuilder 用于创建 SqlSessionFactory 对象。SqlSession 是 MyBatis 的核心接口,用于执行 SQL 语句和管理事务。Executor 是 MyBatis 的执行器,负责 SQL 语句的执行。StatementHandler、ParameterHandler、ResultSetHandler 和 TypeHandler 是 MyBatis 的处理器,分别负责 SQL 语句的生成、参数的设置、结果集的处理和数据类型的转换。
猜你喜欢
- 2024-12-04 劲爆!97道大厂Java核心面试题出炉,呵,我看你会几道题?
- 2024-12-04 惊爆!Java并发编程面试题大揭秘,22 道题让你轻松应对
- 2024-12-04 面试必问的常用六种设计模式
- 2024-12-04 最全蚂蚁金服高级Java面试题目(3面)
- 2024-12-04 2020最新500道Java高岗面试题:数据库+微服务 +SSM+并发编程+..
- 2024-12-04 Java虚拟机经典面试题
- 2024-12-04 精选14道Java IO面试题,献给求职者们
- 2024-12-04 最全Java架构师130面试题:微服务、高并发、大数据...
- 2024-12-04 2020年最全设计模式面试题总结!面试再也不用怕!已有千人收藏
- 2024-12-04 2024最新版java面试题(八股文+场景题)合集!
你 发表评论:
欢迎- 最近发表
-
- JAVA面试|为什么Spring Boot的jar可以直接运行?
- 什么情况,今年面试都不问八股文了??准备了几个月,结果一个都不问。。
- LangChain系列之如何使用LangChain4j构建RAG应用(1)
- JAVA入门教程-第2章 基本编程概念
- FTPC Pnuts语言(ftp mput put)
- 这9个工具库让我的Java开发效率提升了80%
- VS2022配置x86/x64调用32位和64位汇编语言动态库环境
- 别再裸写 parseFrom() 了!这才是 MQTT + Protobuf 消费的正确姿势
- aardio + Java + JavaScript 混合开发快速入门
- 铁打的程序,流水的语言,2018年JAVA编程还想坚挺500年?
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)