Spring 事务传播等级笔记

事务:
概念:事务是数据库的比较特有的属性,这也是数据库区别于文件系统的区别(HDFS貌似没有事务吧),也就是文件系统与数据库系统最大的不同吧,事务就是将数据库从一个一致性状态成功的转化成另一个一致性状态,说白了就是我们在操作数据库的一段业务逻辑中,要么全部成功提交,要么就全部失败,这就是事务的定义。

如果配置REQUIRED+NOT_SUPPORT这样的传播属性的时候,的确可以部分提交成功,部分提交失败,其实这并不矛盾,因为Spring的事务传播只是定义了一个事务的原子性(一个事务管理的范围),并没有违反事务一致性的特性,事务只是保证在一个原子阶段(该阶段就是一个整体,无法再切割,无法再分)在这个基础上事务保证一致性

并不是所有的数据库都是支持ACID这四个特性的,举例来说 Mysql数据库 不同类型的存储引擎对数据库的事务支持都是不一样的,目前最流行的INNODB存储引擎就是支持事务的,而过去流行的存储引擎Myisam就是不支持的

MYSQL INNODB事务的实现原理:

事务是依靠redo日志和undo日志.redo日志,看其名字就知道表示“即将要做”的事,这个用来保证事务的原子性和一致性,undo日志是用来记录数据原有的状态的日志,用来回滚的

杂物间

这里引用音乐试试效果哟

BiggestDreamer
夕阳的约定
Autorun1396

Spice

1.插入网络链接类图片:

直接使用

就可以

2.插入本地图片

插入本地图片需要修改博客根配置_config.yml配置文件的

post_asset_folder:true

使用插件达到插入本地图片,在根目录输入如下命令安装hexo图片插件:

$ npm install hexo-asset-image --save

安装完毕后 new 一篇博客时/source/_posts文件夹内除了xxxx.md文件还有一个同名的xxxx文件夹,把图片放到文件夹里面就可以调用.

最后在xxxx.md中想引入图片时,先把图片复制到xxxx这个文件夹中,然后只需要在xxxx.md中按照markdown的格式引入图片:

你想输入的替代文字

live2d放入hexo系 blog

下载你喜欢的Live2D模型

将包解压后丢到node_modules里面

执行下面两句。
npm uninstall hexo-helper-live2d
npm install –save hexo-helper-live2d

在hexo(不是主题内的config)内的config.yml内添加下面的代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
##live2d config in blog
live2d:
enable: true
scriptFrom: local
pluginRootPath: live2dw/
pluginJsPath: lib/
pluginModelPath: assets/ #以上都是生成后的目录,随便你设定
tagMode: false
debug: false
model:
use: live2d-widget-model-hijiki #这里写你node_modules内live2d的包名。或者以下三种形式都可以。
# use: wanko # 博客根目录/live2d_models/ 下的目录名
# use: ./wives/wanko # 相对于博客根目录的路径
# use: https://cdn.jsdelivr.net/npm/live2d-widget-model-wanko@1.0.5/assets/wanko.model.json
# 你的自定义 url
display:
position: right
width: 150
height: 300
mobile:
show: false
react:
opacity: 0.7

修改上面两个就好了,然后再deploy就ok。
当然要注意一下,这个用的是pose不是physics,如果是其他系统下的live2d用physics就要自己改一下physics内的变量命名了。

git下载问题解决方案汇总

大概率是firewall又升级了或者是国内服务器被撤掉了的原因

9年初开始git clone它突然就不香了,平时速度在3-8Byte晃动,想要clone一下体积稍稍大一些的项目就会各种fail exception 丢出来…展示一下收集找到的几种机制和解决方案。

=========================================================

方法一 直通根源,代理/搭电梯vvvvvvvvvvvvv

代理

挂上代理 https.proxy + 你的代理服务器地址:端口
网上搜搜免费proxy也是可以,不过最好自己捣鼓一个。
阿里的web应用应该算性价比最高的一个了。
一步到位

1
git config --global https.proxy https://127.0.0.1:1086

取消代理 http和https要分别取消。

1
2
git config --global --unset http.proxy
git config --global --unset https.proxy

搭电梯

对本地的hosts进行添加直接地址省去Domain的寻址
注意尽量使用有权限的账户
windows
hosts 位于 c:\windows\system32\drivers\etc
linux 和 mac
位于 /etc 内

ip查找方法:一般用nslookup

1
2
nslookup github.global.ssl.fastly.Net
nslookup github.com

或者上ipip去查询对应区域内github中转域名的ip

然后修改hosts
一般里面是只有注释的

1
2
151.101.76.249 http://global-ssl.fastly.net
192.30.255.113 http://github.com

修改完了就可以刷新一下DNS缓存,以防走第一次DNS找到的老路

linux:

sudo /etc/init.d/networking restart

mac:

sudo killall -HUP mDNSResponder

windows:

ipconfig /flushdns

=============================================================

方法二 修改git本身的耐性

1.提高缓存上限
提高缓存上限能解决 curl 56的问题

1
git config http.postBuffer 524288000`

执行上面命令如果依旧clone失败,考虑可能原因2:网络下载速度缓慢

解决方法:命令行输入 或者是去 .gitconfig(在当前用户的根目录下)直接修改

2.下载速度下限限制解除
这个可能解决curl 18

1
2
git config --global http.lowSpeedLimit 0
git config --global http.lowSpeedTime 999999

如果依旧clone失败,则首先浅层clone,然后更新远程库到本地
当然如果只是使用可以只浅拷贝1就够了不用fetch

1
2
git clone --depth=1 http://gitlab.xxx.cn/yyy/zzz.git
git fetch --unshallow

3.压缩配置(有可能起反作用,请最后再尝试和2一起组合使用)

git config --global core.compression -1

如果还是不行,最后方法

终极方法 利用某ee结尾的员工转存提高下载速率

Gitee
先在码云上注册帐号
码云提供免费5g大小的空间
足够百分之99的项目转存
在容量不够的时候可以删除一些不必要的项目的
使用码云的从gitlab 或github上导入项目功能先导入到gitee再从gitee的服务器直接clone下来
码云:???就真工具人呗

hexo分类问题解决

##直入主题
解决有can not GET/xxx报错进不去类似于about和document的页面问题

先去看看部署以后的github上面有没有index.html或者直接就没有文件夹,没有先看看缺什么
注意:下面只能给没有用淘宝镜像的用,cnpm不支持这个,还有请在你的blog的git根目录下使用

1
npm audit fix

没有缺的组件的话就看看theme里面的部件是否齐全 找得到同网页名的就算齐全
最后肯定没有初始化hexo分类子目录

1
hexo new page "xxx"

然后再clean一下, generate一下 server测试一下,好了就可以再deploy。

总结:一定要看官方文档,一定要看官方文档,一定要看官方文档,重要的事情要说三遍。