让Powershell更好用, Windows下目前最好用的终端工具-Windows Terminal折腾记

装 X 熟话说:“漂亮(ZB)是第一生产力”,既然都是黑框框,你希望是这样的黑框框: 还是这样的: 又或者是这样的: 不! 这并不是我想要的,每天要面对的黑框框。除非审美有问题,要不然谁不喜欢下面这个: 如何装 X 到这里可能有些不明所以的小伙伴就要问了:“所以你这说的都是啥,没明白你装在哪里?” Windows Terminal 我们都知道,全球最大装机量的操作系统是 Windows,然而这样一个系统却有一个又丑有难用的终端-命令提示符,这使得很多开发者退而选择 linux 发行版进行开发,当然他们选择 linux 肯定还有其他原因,微软估计自己人都在吐槽自己的开发工具有多难用,所以陆续开发了 linux 子系统、Windows Terminal 等开发者友好的工具,这才使得我在 Windows 环境也能有不错的开发体验。在一众使用 cmd、powershell、git-bash 原生终端的小伙伴中成为焦点。 说了那么多废话,下面我们还是从实践中来探索一下 Windows Terminal 吧。 安装 打开 Microsoft Store 搜索 Windows Terminal 安装即可。 配置主题 最新版的 Windows Terminal 具有 GUI 配置界面,你可以在设置选项卡进行 GUI 的配置,如果不喜欢 GUI 界面配置,你还可以使用 JSON 配置的方式,点击打开 JSON 文件即可。 打开windowsterminalthemes,选择一个你喜欢的主题,然后复制到 JSON 文件 schemes 数组中, 如: { ... "profiles": { "defaults": {}, "list": [ { "acrylicOpacity": 0.5, // 透明度 "antialiasingMode": "cleartype", // 字体渲染方式 "backgroundImage": null, // 背景图 "backgroundImageOpacity": 0....

2021-06-29 · 3 min · 604 words · Linkzz

Spring事务的隔离级别和传播行为以及常见的事务注解失效的原因

在日常开发中事务的重要性不言而喻,而Spring作为日常使用的最多的Java框架对事务的处理有一套自己的准则,现在我们就来看以下Spring中事务的隔离级别和传播行为. Spring的事务隔离级别和传播行为 这个问题也是Java面试中的常考察的题目. 事务的4种特性 一致性 事务执行前后都要保持一致性状态.在一致性状态下,所有事务对一个数据的读取结果都是相同的. 原子性 事务被视为不可分割的最小单元,要么全部成功,要么全部失败回滚. 持久性 一旦事务提交,则其所做的修改将会永久保存到数据库中.即使系统发生崩溃,事务的执行结果也不能丢失.可以通过数据库备份和恢复来保证持久性. 隔离性 一个事务所做的修改在最终提交前,对其他事务是不可见的. 隔离级别 四种隔离级别, 是基于数据库隔离级别的封装(✔️表示允许,❌表示不允许): 隔离级别 脏读 不可重复读 幻读 默认(Default使用数据库默认的隔离级别) - - - 未提交读(Read_UnCommited) ✔️ ✔️ ✔️ 已提交读(Read_Commited) ❌ ✔️ ✔️ 可重复读(Repeatable_Read) ❌ ❌ ✔️ 串行化的(Serializable) ❌ ❌ ❌ 传播行为 七种传播行为: Propagation.REQUIRED 支持当前事务,如果当前存在事务则加入当前事务;如果当前没有事务,则新建一个事务进行. Propagation.SUPPORTS 支持当前事务,如果当前存在事务则加入当前事务,如果当前没有事务,则以非事务方式运行. Propagation.MANDATORY 支持当前事务,如果当前存在事务则加入当前事务,如果当前没有事务则抛出异常. Propagation.REQUIRES_NEW 不支持当前事务,如果当前存在事务,则当前事务挂起, 另起一个新的事务运行,这两个事务是相互独立的,不会相互影响. Propagation.NOT_SUPPORT 不支持当前事务,如果当前存在事务,则当前事务挂起, 自身以非事务方式运行. Propagation.NEVER 不支持当前事务,如果当前存在事务,则抛出异常,如果当前不存在事务,则以非事务方式运行. Propagation.NESTED 嵌套事务, 和requires_new的区别是当前事务的提交依赖于父事务的提交, 若父事务回滚, 则当前事务也会回滚.另外当前方法调用子方法时,子方法的发生异常被捕获了,则只有子方法回滚事务,当前事务仍然可以运行.基于数据库的SAVEPOINT技术,若数据库不支持此技术,则会新建一个事务去运行,此时就相当于REQUIRES_NEW. Spring的@Transactional注解不生效的原因 1. 数据库引擎不支持事务 以MySQL为例, MyISAM引擎不支持事务, 需要InnoDB引擎才支持. 2. 当前Bean没有被Spring管理 没有被Spring管理的类,这个类不会被Spring加载,其方法再怎么加注解当然会失效....

2020-05-29 · 1 min · 189 words · Linkzz

拯救你的idea,解决ubuntu下idea字体发虚

idea在ubuntu下的字体表现 idea这么强大的ide相信大家都有目共睹,但是最近在ubuntu下安装idea之后却发现字体表现还不如windows,要知道windows的字体渲染可是不如linux的,在高分屏下window的字体会出现明显锯齿,而linux就很平滑,虽然这个和idea没关系,因为idea是用java开发的,字体渲染不是用的系统的字体渲染引擎。查阅资料也发现对于idea的字体渲染问题,intelliJ是有优化过的,然而我ubuntu下的idea看起来却是这样的: idea环境 我的ubuntu是18.04LTS,屏幕是23寸1920*1080,idea设置如下: 主题方面选择了idea内部提供的暗色主题Darcula编辑界面主题是在idea主题样式网站下载的: 英文字体是Adobe开源的source code pro,在github仓库中提供下载。中文字体是开源字体文泉驿微米黑 更换系统主题 字体看起来发虚只是在暗色主题中才会发生,所以我们采取曲线救国策略,换用itelliJ亮色主题,然后结合一张暗色背景图来实现暗色主题的效果。 主题选择intellJ 选择一张背景图设置透明度 编辑界面主题选择一张亮色的主题,字体不变 成果 完成以上设置之后来看看成果 字体看起来平滑多了,好了,安心编码吧 :)

2019-05-03 · 1 min · 17 words · Linkzz

使用Hogan渲染html模板加载图片出错

在从服务器加载数据并渲染商品列表的时候出现Cannot find module "./{{imageHost}}{{mainImage}}"错误,查看返回的json字段信息如下: { "status": 0, "data": { "pageNum": 1, "pageSize": 10, "size": 1, "orderBy": "price asc", "startRow": 1, "endRow": 1, "total": 1, "pages": 1, "list": [ { "id": 26, "categoryId": 100002, "name": "Apple iPhone 7 Plus (A1661) 128G 玫瑰金色 移动联通电信4G手机", "subtitle": "iPhone 7,现更以红色呈现。", "mainImage": "241997c4-9e62-4824-b7f0-7425c3c28917.jpeg", "price": 6999, "status": 1, "imageHost": "//img.shashamall.com/" } ], "firstPage": 1, "prePage": 0, "nextPage": 0, "lastPage": 1, "isFirstPage": true, "isLastPage": true, "hasPreviousPage": false, "hasNextPage": false, "navigatePages": 8, "navigatepageNums": [1] } } HTML模板的string文件如下:...

2019-01-08 · 1 min · 146 words · Linkzz

取非符号的妙用

如下代码块: // 字段的验证,支持是否非空、是否是手机号、是否是邮箱地址的判断 validate : function(value, type){ //需要把前后的空格去掉 var value = $.trim(value); // 非空判断 if ('require' === type){ // 这里可以将value转换成boolean型 return !!value; } } 经过测试在 js中!null、!undefined、!''输出结果都为true,而任意非空字符串取非均为false。代码中巧妙的利用了这点,先用 jquery 把传入的参数去掉空格,同时转换成字符串,再进行二次取非操作,这样传入的空字符就会返回 boolean 型的true,这样函数的返回值也更容易理解,当传入的是空串时返回true。

2018-12-28 · 1 min · 30 words · Linkzz