北京沙河水库
21 年 9 月 21,晴,中秋,来沙河的水库垂钓。
21 年 9 月 21,晴,中秋,来沙河的水库垂钓。
本来想查看 win 电脑上的一些源码,奈何在 Mac 上都乱码了,于是网上搜集了一些解决办法,网上多数都是针对单文件的,而我的源码文件是比较多的,因此写了个脚本进行批量处理,我先介绍单文件编码转换方法,最后放上批量转换的脚本。
第一种,直接使用 vi 编辑器调整编码方法。输入以下命令。
:set fileencoding=utf-8
最近在做国际化相关的工作,需求是在「English」状态用户的名称和部门的名称显示英文字段,实体中有 name 和 englishName,当用户选择英语时 name 需要被填充 englishName,这种情况不像系统字段的国际化,系统字段的各个语言是固定的,而用户的英文名称是变动的。为了处理用户的不同语言选择需要写很多 if 或者 switch,因此当 VO、DOT、Model 对象多了就会出现很多形式相似的代码,像下面这样。
业务系统会有多处与下面雷同的代码,因为不同的 VO、DTO 需要不同的处理。
public void i18nHandler(UserVO vo, User user){
LanguageEnum language = currentLanguage();
switch (language){
case EN:
String englishName = user.getEnglishName();
if(StringUtils.isNotEmpty(englishName)){
vo.setName(englishName);
}
break;
case JP:
String jpName = user.getJpName();
if(StringUtils.isNotEmpty(jpName)){
vo.setName(jpName);
}
case ZH:
default:
// 缺省默认中文
}
}
之前我一直抵触热部署工具,一是因为之前项目启动都比较快,二是对 spring 的热部署工具有不好的印象——使用过程中出先问题很难排查,直到现在启动比较大的项目一次要消耗掉 5 ~ 10 分钟,真能在期间喝杯咖啡了,忍无可忍了于是又想起了热部署工具,否则一上午也调试不了几次。
今天体验了一下 JRebel 还不错,推荐一下。公司内部开发的也有热部署工具 🔧,不过问同事了体验不是太好,不过能开发这种工具的是挺厉害,虽然不认同工具但对他的技术是认可的。
关于热部署相关工具,spring 热部署工具 spring-boot-devtools
, idea 也有热部署工具,还有收费的 JRebel。
JRebel 下载安装教程(亲测可用):点击跳转
果然,人要善于利用工具,把自己从繁忙、低效中解放出来,把空出的时间用来提升自己、社交或娱乐。
1、下载 SSH 软件
sudo apt update
sudo apt install openssh-server
2、查看 SSH 状态、设置开启自启
# 查看ssh状态
sudo systemctl status ssh
# 设置
sudo systemctl enable --now ssh
区别于 MyISAM,InnoDB 支持事务,使其成为了 MySQL 的默认存储引擎,也是大多数 OLTP 系统的首选存储引擎。
加密是为了保护数据的安全,进行数据校验,或者进行认证。但从加密和认证角度来说,加密分为:对称加密、非对称加密,另外还有不可逆的摘要(Digest)算法。前几天在团队分享加密相关的知识,也是现学现卖,看了本书和在网上查了些资料就开始讲了,废话不多说了,进入本篇文章的主题。
对称加密,常见的是 DES、3DES、DESX 等,通过了解古典的加密和 DES 加密的原理可知道,DES 加密的轮数特别多,使其密钥空间特别大,以此来防御破解。其中,3DES 是进行三次同样的算法,比一次的要慢 3 倍。
单向加密,常见的是 MD4、MD5、SHA、SHA1、HMAC 等,不同的是 HMAC 是一种加盐的单向加密,对于不同的密钥有不同的输出,对密码有很好的保护。
在权限管理中一般分为两类:操作权限、数据权限。
操作权限:是用户是否能使用某个功能的接口权限。 数据权限:是用户是否能操作某个范围的数据,例如:订单记录修改接口,“用户”只能修改所属的(用户 A 不能修改用户 B 的订单记录),“admin”可修改所有的。
现有权限管理一般是基于 RBAC(Role-Based Access Control)模型,都只能解决操作权限的控制,即使粒度再小(如把订单权限划分为增、删、改、查权限)也不能解决数据权限的问题。
操作权限与数据权限的关系,下面是个例子:
admin 和张三(员工)都有公寓大门的钥匙,他们都能进入公寓(访客不能进入),虽然他们都能进公寓但他们管理但房间是不同的,张三只能使用自己的房间,管理员可以使用所有的房间,如果张三使用了其他人的房间就会引发问题——数据权限安全问题。
那么如何在已有的权限管理模型下对数据权限进行管理是数据安全难以避免的问题。