当前位置:网站首页>如何实现常见框架
如何实现常见框架
2022-07-06 12:44:00 【EnndmeRedis】
MyBatis
mybatis是一个持久层框架,解决了JDBC操作数据库要写复杂的建立连接、数据手动映射。使用xml配置省去建立sqlSession的过程,使用对象关系映射解决麻烦的手动映射。
需要做的就是在调用某个接口时去执行对应的SQL,这里就要用到动态代理
生成代理对象,代理对象就可以根据传入的SQL,完成建立连接并发用JDBC的方法执行SQL;通过反射拿到这个方法返回值的类型,将数据库返回的数据集合进行依次映射
Spring IOC容器
- 定义一些Bean的注解,我们要通过这些注解扫描添加到Bean容器
- 读取配置中的扫描路径并扫描,然后将路径下的.class文件都存放到一个Set中
- 遍历这个集合,根据类上的注解去交给IOC容器,也就是个Map集合
- 如果有Bean依赖其他Bean就完成依赖注入
- 产生循环依赖,再创建两个Map作二级缓存和三级缓存
MQ
- 指定消息协议(JMS、AMQP)
- 选择存储方式(内存、日志、数据库)在效率和可靠性做平衡
Naocs
参考Nacos实现原理
分布式锁
参考Redis做分布式锁过程 setnx -> red lock
分布式事务
参考XA、AT、TCC
本地消息表???还没理解
MQ:我保证了消息可靠(发布确认+持久化+手动应答),通过重试防止宕机带来的不一致问题。但是!如果是我下游服务本身业务问题,比如用户余额不足,那我下游服务如何通知上游服务回滚????(用Seata???)
边栏推荐
- Pat 1085 perfect sequence (25 points) perfect sequence
- 使用.Net分析.Net达人挑战赛参与情况
- Web security - payload
- 动态切换数据源
- 【每周一坑】计算100以内质数之和 +【解答】输出三角形
- APS taps home appliance industry into new growth points
- SAP Fiori应用索引大全工具和 SAP Fiori Tools 的使用介绍
- (work record) March 11, 2020 to March 15, 2021
- 正则表达式收集
- Spark SQL chasing Wife Series (initial understanding)
猜你喜欢
Pytest (3) - Test naming rules
[200 opencv routines] 220 Mosaic the image
知识图谱之实体对齐二
[DIY]如何制作一款个性的收音机
Common doubts about the introduction of APS by enterprises
新型数据库、多维表格平台盘点 Notion、FlowUs、Airtable、SeaTable、维格表 Vika、飞书多维表格、黑帕云、织信 Informat、语雀
Intel 48 core new Xeon run point exposure: unexpected results against AMD zen3 in 3D cache
New database, multidimensional table platform inventory note, flowus, airtable, seatable, Vig table Vika, Feishu multidimensional table, heipayun, Zhixin information, YuQue
The mail command is used in combination with the pipeline command statement
Activiti global process monitors activitieventlistener to monitor different types of events, which is very convenient without configuring task monitoring in acitivit
随机推荐
Spark SQL chasing Wife Series (initial understanding)
1500万员工轻松管理,云原生数据库GaussDB让HR办公更高效
Huawei device command
[DSP] [Part 2] understand c6678 and create project
Intel 48 core new Xeon run point exposure: unexpected results against AMD zen3 in 3D cache
Infrared thermometer based on STM32 single chip microcomputer (with face detection)
自定义限流注解
[DIY]如何制作一款個性的收音機
设计你的安全架构OKR
Logic is a good thing
C language games - three chess
What is the difference between procedural SQL and C language in defining variables
Gui Gui programming (XIII) - event handling
Boder radius has four values, and boder radius exceeds four values
R語言可視化兩個以上的分類(類別)變量之間的關系、使用vcd包中的Mosaic函數創建馬賽克圖( Mosaic plots)、分別可視化兩個、三個、四個分類變量的關系的馬賽克圖
Leetcode question 448 Find all missing numbers in the array
[200 opencv routines] 220 Mosaic the image
知识图谱构建流程步骤详解
使用.Net驱动Jetson Nano的OLED显示屏
Solution to the 38th weekly match of acwing