0%

MyBatis原理

TODO

主要接口

SqlSessionFactory

  • Spring框架中<<FactoryBean<SqlSessionFactory>>利用FactoryBean功能构建出SqlSessionFactoryBean。
  • 通过SqlSessionFactoryBuilder构建出SqlSessionFactory(自带仅一个DefaultSqlSessionFactory实现类)
  • 之后可以通过SqlSessionFactory构造出SqlSession

SqlSession

  • 访问MyBatis门户
  • 自带仅一个DefaultSqlSession实现类

Configuration & Mapper

Configuration

  • MyBatis本身配置信息
  • 接口配置信息

Mapper

Executor

Transaction

Mapper

MapperProxy

selectList

doQuery

来源

https://www.icourse163.org/learn/XMU-1462056168#/learn/content

Spring缓存

为什么需要缓存

  • 减轻服务器压力
客户端缓存 CDN对象存储
接入服务器 NGIX缓存
应用服务器Tomcat Mybatis && Hibernate缓存 分布式缓存/Redis

Spring Cache

  • Spring Cache 是Spring 提供的一整套的缓存解决方案(JSR- 107),
  • 提供一整套的接口和代码规范、配置、注解等,用于整合各种缓 存方案,如Redis、Caffeine、Guava Cache、Ehcache

不推荐原因

  • 无法测试:无法进行切片测试
  • 不支持复杂结构,只能进行简单对象查询存储
阅读全文 »

MySQL存储结构

InnoDB存储

表->段->区->页->行

在数据库中,不论读哪一行数据,还是读多行数据,都是将这些行所在的页进行加载。也就是存储空间的基本单位就是页。

一个页就是一颗B+树的节点,数据库I/O操作的最小单位是页,与数据库相关的内容都会存储在页的结构里。

1629471915

阅读全文 »

Linux如何设置忘记网络

问题

PI (Debian OS)同时连接2.4G与5G网络,5G不稳定需删除SSID,记录删除方法

方法

  • 删除SSID方法

    1
    2
    3
    4
    5
    6
    # 查看当前记录的SSID
    nmcli -t -f TYPE,UUID,NAME con
    # 查询结果
    802-11-wireless:12345678-31d1-51e7-a60e-3a52e52b4495:YourWifiName
    # 删除需要处理的UUID
    sudo nmcli c delete 12345678-31d1-51e7-a60e-3a52e52b4495
阅读全文 »

Singleton Pattern

Conceptual

  • 保证一个类只有一个实例

  • 为该实例提供一个全局访问节点

无论何时调用该方法,它总是会返回相同的对象

Pros & Cons

Pros

  • 你可以保证一个类只有一个实例,提供了一个指向该实例的全局访问节点
  • 仅在首次请求单例对象时对其进行初始化
阅读全文 »

./AbstractApplicationContext

1
2
3
4
public static void main(String[] args) {
// 执行SpringAppllication的静态run方法
SpringApplication.run(SampleTomcatApplication.class, args);
}

Version:

  • spring-context-6.0.0-SNAPSHOT.jar
  • spring-beans-5.3.15.jar
  • spring-aop-6.0.0-SNAPSHOT.jar
  • spring-core-6.0.0-SNAPSHOT.jar
阅读全文 »

RPC

RPC-远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。

定义

RPC(Remote Procedure Call)—远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。也就是说两台服务器A,B,一个应用部署在A服务器上,想要调用B服务器上应用提供的方法,由于不在一个内存空间,不能直接调用,需要通过网络来表达调用的语义和传达调用的数据。

RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了传输层和应用层。RPC使得开发包括网络分布式多程序在内的应用程序更加容易。现在业界有很多开源的优秀 RPC 框架,例如 Spring Cloud、Dubbo、Thrift 等。

阅读全文 »

数据结构 数据的逻辑结构 线性结构 线性表
栈(特殊线性表)
队列(特殊线性表)
字符串、数组、广义表
非线性结构 树形结构
图形结构
数据的存储结构 顺序存储
链式存储
数据的运算 插入、修改、检索、删除、排序

HTML Tables generator – TablesGenerator.com

TODO状态!!

阅读全文 »

Docker-Kubernetes关联与演变

Docker

什么是Docker

是指容器化技术,用于支持创建和使用 Linux® 容器

为什么使用Docker

  • 更高效的利用系统资源
  • 更快速的启动时间
  • 一致的运行环境
  • 持续交付和部署
  • 更轻松的迁移
  • 更轻松的维护和扩展

Docker基本概念

  • 镜像(Image

  • 容器(Container

    容器的实质是进程

  • 仓库(Repository

阅读全文 »

分布式事务

什么是分布式系统

部署在不同结点上的系统通过网络交互来完成协同工作的系统

事务

什么是事务

事务是指由一组操作组成的一个工作单元,这个工作单元具有原子性(atomicity)、一致性(consistency)、隔离性(isolation)和持久性(durability)。

什么是本地事务

本地事务就是用关系数据库来控制事务,关系数据库通常都具有ACID特性,传统的单体应用通常会将数据全部存储在一个数据库中,会借助关系数据库来完成事务控制。

什么是分布式事务

在分布式系统中一次操作由多个系统协同完成,这种一次事务操作涉及多个系统通过网络协同完成的过程称为分布式事务。这里强调的是多个系统通过网络协同完成一个事务的过程,并不强调多个系统访问了不同的数据库,即使多个系统访问的是同一个数据库也是分布式事务,

另外一种分布式事务的表现是,一个应用程序使用了多个数据源连接了不同的数据库,当一次事务需要操作多个数据源,此时也属于分布式事务,当系统作了数据库拆分后会出现此种情况

阅读全文 »