Skip to content

Commit

Permalink
doc: 备份文章
Browse files Browse the repository at this point in the history
  • Loading branch information
01Petard committed Nov 10, 2024
1 parent 8749b33 commit 9a07301
Show file tree
Hide file tree
Showing 2 changed files with 232 additions and 22 deletions.
38 changes: 29 additions & 9 deletions docs/开发/My Java Guide/My Java Guide - Spring.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: My Java Guide - Spring
date: 2024-10-15 00:23:00
updated: 2024-10-15 00:23:00
updated: 2024-11-10 22:16:00
categories:
- 学习
tags:
Expand Down Expand Up @@ -1031,15 +1031,35 @@ Spring 事务管理具有以下特点:

## 传播行为(Propagation)

传播行为定义了当一个方法被另一个事务性的方法调用时,应该如何处理事务。常见的传播行为包括:
事务的传播行为说白了就是多个方法都有进行写操作时,对于事物的控制,作为事物的传播级别,在Spring中体现为一个叫 `Propagation` 的类中。

- **`PROPAGATION_REQUIRED`**:如果有事务活动,就加入当前事务;如果没有,就创建一个新的事务。
- `PROPAGATION_SUPPORTS`:如果有事务活动,就加入当前事务;如果没有,就以非事务方式运行。
- `PROPAGATION_MANDATORY`:必须在现有的事务上下文中执行;如果没有事务,则抛出异常。
- `PROPAGATION_REQUIRES_NEW`:总是创建一个新的事务,无论当前是否存在事务。
- `PROPAGATION_NOT_SUPPORTED`:以非事务方式运行,并挂起任何存在的事务。
- `PROPAGATION_NEVER`:以非事务方式运行,如果存在事务,则抛出异常。
- `PROPAGATION_NESTED`:如果存在事务,则在嵌套事务内执行;如果没有,则行为类似于 `PROPAGATION_REQUIRED`
`Propagation` 类定义了当一个方法被另一个事务性的方法调用时,应该如何处理事务。常见的传播行为包括:

- `REQUIRED`:如果有事务活动,就加入当前事务;如果没有,就创建一个新的事务。

> 最简单的事物传播机制,将方法中所有执行的过程全部作为一个事物,要么成功,要么失败,一次只占用一个数据库连接。
<img src="https://cdn.jsdelivr.net/gh/01Petard/imageURL@main/img/202411092123712.png" alt="image-20241109212341682" style="zoom:67%;" />

- `REQUIRES_NEW`:总是创建一个新的事务,无论当前是否存在事务。

> 每次执行方法,都会新开一个数据库连接,每次方法的执行都是独立的,不受任何影响。(可以预见的性能很差)
<img src="https://cdn.jsdelivr.net/gh/01Petard/imageURL@main/img/202411092125052.png" alt="image-20241109212529011" style="zoom:67%;" />

- `NESTED`:如果存在事务,则在嵌套事务内执行;如果没有,则行为类似于 `PROPAGATION_REQUIRED`

> 此模式下会利用数据库的**存档点机制**,即使事务运行过程中失败了,也会回滚到之前的存档点。
<img src="https://cdn.jsdelivr.net/gh/01Petard/imageURL@main/img/202411092121831.png" alt="image-20241109212153782" style="zoom:67%;" />

- `SUPPORTS`:如果有事务活动,就加入当前事务;如果没有,就以非事务方式运行。

- `NOT_SUPPORTED`:以非事务方式运行,并挂起任何存在的事务。

- `MANDATORY`:必须在现有的事务上下文中执行;如果没有事务,则抛出异常。

- `NEVER`:以非事务方式运行,如果存在事务,则抛出异常。

## 隔离级别(Isolation Level)

Expand Down
216 changes: 203 additions & 13 deletions docs/软件/Linux/命令行系统信息工具.md
Original file line number Diff line number Diff line change
@@ -1,25 +1,209 @@
---
title: 命令行系统信息工具
date: 2024-11-05 22:40:00
updated:
updated: 2024-11-10 22:14:00
categories:
- 软件
tags:
- macchina
- neofetch
- fastfetch
- Linux
- 命令行
keywords:
- macchina
- neofetch
- fastfetch
description: 主要目的是为了装逼
- Linux
- 命令行
description: (主要目的是为了装逼)
cover: https://cdn.jsdelivr.net/gh/01Petard/imageURL@main/img/202411052242583.png
top_img: https://cdn.jsdelivr.net/gh/01Petard/imageURL@main/img/202411052242895.png
---

> 学习Linux命令行工具不仅仅是操作技能的提升,更是解锁“系统魔法”的钥匙!很多时候,它们是你和系统沟通的唯一语言。掌握它们,你会发现自己像黑客电影里的高手一样,可以在屏幕上“指点江山”。所以,学习Linux命令行工具不仅是技能,更是一场奇妙的冒险。掌握它,你会变得高效、自信,而且始终“掌控全局”!
>
# 个人推荐

- 查看系统信息:[x uname](#x uname)

- 查询 ip 地址:[x ip](#x ip)

- 查看进程的实时信息:[x btop](#x btop)

- 查看文件内容:[x cat](#x cat)

- 查看当前目录下的文件:[lsd](#lsd)

- 查看系统信息:[macchina](macchina)[fastfetch](#fastfetch)

- 增强docker功能:[增强docker功能](#增强docker功能)

# 准备:安装`X`

> 官方地址:[X-CMD | 开源轻量级 POSIX 脚本,用于管理工具 (670+) 和提供经典命令扩展](https://cn.x-cmd.com/)
采用 curl 安装

```shell
eval "$(curl https://get.x-cmd.com)"
```

采用 wget 安装

```shell
eval "$(wget -O- https://get.x-cmd.com)"
```

<img src="https://cdn.jsdelivr.net/gh/01Petard/imageURL@main/img/202411102054702.png" alt="image-20241110205427518" style="zoom: 67%;" />

# <a name="x uname">x uname</a>

> 通过终端命令查看电脑以及操作系统的相关信息,相比自带的`uname`能看到更多信息
```shell
x uname
```

<img src="https://cdn.jsdelivr.net/gh/01Petard/imageURL@main/img/202411102135106.png" alt="image-20241110213518080" style="zoom:67%;" />

# x df

> 以 TUI 方式查看文件系统和磁盘空间使用情况
```shell
x df
```

<img src="https://cdn.jsdelivr.net/gh/01Petard/imageURL@main/img/202411102155462.png" alt="image-20241110215525365" style="zoom:67%;" />

# x ping

> Linux下的`ping`有点low了,所以可以用这个**`ping`**,美观且可视化
```shell
x ping -b www.baidu.com
```

<img src="https://cdn.jsdelivr.net/gh/01Petard/imageURL@main/img/202411102120580.png" alt="image-20241110212020536" style="zoom:67%;" />

# <a name="x ip">x ip</a>

> 查询 ip 地址,可以平替`ifconfig`
```shell
x ip
```

<img src="https://cdn.jsdelivr.net/gh/01Petard/imageURL@main/img/202411102159353.png" style="zoom:67%;" />

# x top

使用 htop 来查看进程的实时信息

```shell
x top
```

<img src="https://cdn.jsdelivr.net/gh/01Petard/imageURL@main/img/202411102127626.png" alt="image-20241110212717560" style="zoom:67%;" />

# x htop

使用 htop 来查看进程的实时信息

```shell
x htop
```

<img src="https://cdn.jsdelivr.net/gh/01Petard/imageURL@main/img/202411102125141.png" alt="image-20241110212559077" style="zoom:67%;" />

# <a name="x btop">x btop</a>

使用 htop 来查看进程的实时信息

```shell
x btop
```

<img src="https://cdn.jsdelivr.net/gh/01Petard/imageURL@main/img/202411102153101.png" alt="image-20241110215350980" style="zoom:67%;" />

# x cd

> `cd`更高级的`cd`,具有更丰富的交互性
```shell
x cd
```

<img src="https://cdn.jsdelivr.net/gh/01Petard/imageURL@main/img/202411102131391.png" alt="image-20241110213113334" style="zoom:67%;" />

# <a name="x ll">x ll</a>

> 一个可交互性的命令行文件管理器
```shell
x ll
```

<img src="https://cdn.jsdelivr.net/gh/01Petard/imageURL@main/img/202411102133920.png" alt="image-20241110213317862" style="zoom:67%;" />

# <a name="x cat">x cat</a>

> 查看文件内容,很好地解决了`cat`的痛点
```shell
x cat
```

<img src="https://cdn.jsdelivr.net/gh/01Petard/imageURL@main/img/202411102154314.png" alt="image-20241110215414267" style="zoom:67%;" />

# <a name="lsd">lsd</a>

> 查看当前目录下的文件,比`ls`的功能更丰富
## 查看文件

效果与`ls`一样,默认按文件名排列

```shell
lsd
```

<img src="https://cdn.jsdelivr.net/gh/01Petard/imageURL@main/img/202411102055327.png" alt="image-20241110205510288" style="zoom:67%;" />

## 树形查看文件

`--depth 1`:查看深度为1的文件

```shell
lsd --tree --depth 1 -S
```

<img src="https://cdn.jsdelivr.net/gh/01Petard/imageURL@main/img/202411102055851.png" alt="image-20241110205558823" style="zoom:67%;" />

## 组合命令

`-S`:按文件大小排列(默认按文件名排列)

`-1`:每行列出一个文件

`-a`:查看隐藏文件

```shell
lsd --tree --depth 1 -S -1 -a
```

<img src="https://cdn.jsdelivr.net/gh/01Petard/imageURL@main/img/202411102058128.png" alt="image-20241110205847076" style="zoom:67%;" />

## 添加alias别名

在环境配置文件中添加alias别名

```shell
alias ll='lsd --tree --depth 1 -1'
# alias ll='ls -la'
```

# 系统信息查看工具

> **系统信息查看工具**可以用于获取和显示系统硬件、软件和环境信息(如内核版本、内存使用情况、处理器负载等),通过这些工具可以在主流操作系统的运行中获取系统信息。
# macchina
# <a name="macchina">macchina</a>

1. **最小化**:相比于 `neofetch``fastfetch``macchina` 更加简单,更适合小型设备或资源受限的环境。
2. **可定制化**:提供主题系统,主题配置文件与主要配置文件是分开的,用户可以创建一堆主题并随时在它们之间切换。
Expand Down Expand Up @@ -119,7 +303,7 @@ neofetch
cat ${HOME}/.config/neofetch/config.conf
```
<img src="https://developer.qcloudimg.com/http-save/7704194/7a9ceb4ee93944402ef47350d54f168c.webp" alt="neofetch默认配置" style="zoom:40%;" />
<img src="https://developer.qcloudimg.com/http-save/7704194/7a9ceb4ee93944402ef47367d54f168c.webp" alt="neofetch默认配置" style="zoom:40%;" />
neofetch默认配置
Expand Down Expand Up @@ -206,11 +390,11 @@ Neofetch完全基于`bash`,使其兼容性很不错;即使你的Debian从8
接任者都是非常好用的项目;不过受限于篇幅,接下来,我们就取其中的 Fastfetch 来一起看看。
# fastfetch
# <a name="fastfetch">fastfetch</a>
1. **可替代性**:通常情况下,可以把 FastFetch 当作 NeoFetch 使用。安装方式也是一样,FastFetch 已经在各个平台的软件包管理器发布。
2. **可扩展性**:相比于 NeoFetch 全部基于`bash`的 shell 脚本,FastFetch 是基于C的。
2. **可扩展性**:相比于 NeoFetch 全部基于`bash`的 shell 脚本,FastFetch 是基于C的。
## 安装
Expand All @@ -237,4 +421,10 @@ fastfetch --version
neofetch
```
<img src="https://cdn.jsdelivr.net/gh/01Petard/imageURL@main/img/202411032347936.png" alt="image-20241103234731900" style="zoom:67%;" />
<img src="https://cdn.jsdelivr.net/gh/01Petard/imageURL@main/img/202411032347936.png" alt="image-20241103234731900" style="zoom:67%;" />
# <a name="增强docker功能">增强docker功能</a>
可以直接用 **`xd``x docker`** 来增强 **`docker`**,具体效果如下:
<img src="https://cdn.jsdelivr.net/gh/01Petard/imageURL@main/img/202411102139963.png" alt="image-20241110213952852" style="zoom:67%;" />

0 comments on commit 9a07301

Please sign in to comment.