From 9a07301df29083c0fadf8c584785c716e15dc175 Mon Sep 17 00:00:00 2001 From: 01Petard <1520394133@qq.com> Date: Sun, 10 Nov 2024 22:16:50 +0800 Subject: [PATCH] =?UTF-8?q?doc:=20=E5=A4=87=E4=BB=BD=E6=96=87=E7=AB=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../My Java Guide/My Java Guide - Spring.md" | 38 ++- ...41\346\201\257\345\267\245\345\205\267.md" | 216 ++++++++++++++++-- 2 files changed, 232 insertions(+), 22 deletions(-) diff --git "a/docs/\345\274\200\345\217\221/My Java Guide/My Java Guide - Spring.md" "b/docs/\345\274\200\345\217\221/My Java Guide/My Java Guide - Spring.md" index 6224742..9ae0dc0 100644 --- "a/docs/\345\274\200\345\217\221/My Java Guide/My Java Guide - Spring.md" +++ "b/docs/\345\274\200\345\217\221/My Java Guide/My Java Guide - Spring.md" @@ -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: @@ -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`:如果有事务活动,就加入当前事务;如果没有,就创建一个新的事务。 + + > 最简单的事物传播机制,将方法中所有执行的过程全部作为一个事物,要么成功,要么失败,一次只占用一个数据库连接。 + + image-20241109212341682 + +- `REQUIRES_NEW`:总是创建一个新的事务,无论当前是否存在事务。 + + > 每次执行方法,都会新开一个数据库连接,每次方法的执行都是独立的,不受任何影响。(可以预见的性能很差) + + image-20241109212529011 + +- `NESTED`:如果存在事务,则在嵌套事务内执行;如果没有,则行为类似于 `PROPAGATION_REQUIRED`。 + + > 此模式下会利用数据库的**存档点机制**,即使事务运行过程中失败了,也会回滚到之前的存档点。 + + image-20241109212153782 + +- `SUPPORTS`:如果有事务活动,就加入当前事务;如果没有,就以非事务方式运行。 + +- `NOT_SUPPORTED`:以非事务方式运行,并挂起任何存在的事务。 + +- `MANDATORY`:必须在现有的事务上下文中执行;如果没有事务,则抛出异常。 + +- `NEVER`:以非事务方式运行,如果存在事务,则抛出异常。 ## 隔离级别(Isolation Level) diff --git "a/docs/\350\275\257\344\273\266/Linux/\345\221\275\344\273\244\350\241\214\347\263\273\347\273\237\344\277\241\346\201\257\345\267\245\345\205\267.md" "b/docs/\350\275\257\344\273\266/Linux/\345\221\275\344\273\244\350\241\214\347\263\273\347\273\237\344\277\241\346\201\257\345\267\245\345\205\267.md" index 294cea4..02d5e1d 100644 --- "a/docs/\350\275\257\344\273\266/Linux/\345\221\275\344\273\244\350\241\214\347\263\273\347\273\237\344\277\241\346\201\257\345\267\245\345\205\267.md" +++ "b/docs/\350\275\257\344\273\266/Linux/\345\221\275\344\273\244\350\241\214\347\263\273\347\273\237\344\277\241\346\201\257\345\267\245\345\205\267.md" @@ -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)" +``` + +image-20241110205427518 + +# x uname + +> 通过终端命令查看电脑以及操作系统的相关信息,相比自带的`uname`能看到更多信息 + +```shell +x uname +``` + +image-20241110213518080 + +# x df + +> 以 TUI 方式查看文件系统和磁盘空间使用情况 + +```shell +x df +``` + +image-20241110215525365 + +# x ping + +> Linux下的`ping`有点low了,所以可以用这个**`ping`**,美观且可视化 + +```shell +x ping -b www.baidu.com +``` + +image-20241110212020536 + +# x ip + +> 查询 ip 地址,可以平替`ifconfig` + +```shell +x ip +``` + + + +# x top + +使用 htop 来查看进程的实时信息 + +```shell +x top +``` + +image-20241110212717560 + +# x htop + +使用 htop 来查看进程的实时信息 + +```shell +x htop +``` + +image-20241110212559077 + +# x btop + +使用 htop 来查看进程的实时信息 + +```shell +x btop +``` + +image-20241110215350980 + +# x cd + +> 比`cd`更高级的`cd`,具有更丰富的交互性 + +```shell +x cd +``` + +image-20241110213113334 + +# x ll + +> 一个可交互性的命令行文件管理器 + +```shell +x ll +``` + +image-20241110213317862 + +# x cat + +> 查看文件内容,很好地解决了`cat`的痛点 + +```shell +x cat +``` + +image-20241110215414267 + +# lsd + +> 查看当前目录下的文件,比`ls`的功能更丰富 + +## 查看文件 + +效果与`ls`一样,默认按文件名排列 + +```shell +lsd +``` + +image-20241110205510288 + +## 树形查看文件 + +`--depth 1`:查看深度为1的文件 + +```shell +lsd --tree --depth 1 -S +``` + +image-20241110205558823 + +## 组合命令 + +`-S`:按文件大小排列(默认按文件名排列) + +`-1`:每行列出一个文件 + +`-a`:查看隐藏文件 + +```shell +lsd --tree --depth 1 -S -1 -a +``` + +image-20241110205847076 + +## 添加alias别名 + +在环境配置文件中添加alias别名 + +```shell +alias ll='lsd --tree --depth 1 -1' +# alias ll='ls -la' +``` + +# 系统信息查看工具 + > **系统信息查看工具**可以用于获取和显示系统硬件、软件和环境信息(如内核版本、内存使用情况、处理器负载等),通过这些工具可以在主流操作系统的运行中获取系统信息。 -# macchina +# macchina 1. **最小化**:相比于 `neofetch` 和 `fastfetch`,`macchina` 更加简单,更适合小型设备或资源受限的环境。 2. **可定制化**:提供主题系统,主题配置文件与主要配置文件是分开的,用户可以创建一堆主题并随时在它们之间切换。 @@ -119,7 +303,7 @@ neofetch cat ${HOME}/.config/neofetch/config.conf ``` -neofetch默认配置 +neofetch默认配置 neofetch默认配置 @@ -206,11 +390,11 @@ Neofetch完全基于`bash`,使其兼容性很不错;即使你的Debian从8 接任者都是非常好用的项目;不过受限于篇幅,接下来,我们就取其中的 Fastfetch 来一起看看。 -# fastfetch +# fastfetch 1. **可替代性**:通常情况下,可以把 FastFetch 当作 NeoFetch 使用。安装方式也是一样,FastFetch 已经在各个平台的软件包管理器发布。 -2. **可扩展性**:相比于 NeoFetch 全部基于`bash`的 shell 脚本,FastFetch 是基于C的。 +2. **可扩展性**:相比于 NeoFetch 全部基于`bash`的 shell 脚本,而 FastFetch 是基于C的。 ## 安装 @@ -237,4 +421,10 @@ fastfetch --version neofetch ``` -image-20241103234731900 \ No newline at end of file +image-20241103234731900 + +# 增强docker功能 + +可以直接用 **`xd`、`x docker`** 来增强 **`docker`**,具体效果如下: + +image-20241110213952852 \ No newline at end of file