CapsLockPlus | 魔改 CapsLock 键
CapsLock,也就是键盘最左边一列中间那个大写锁定键,跟 shift 功能重复,需要输入大写字母的时候,一般都直接通过 Shift 输入了。
在换了 Anne-pro2 键盘之后, 发现 CapsLock 键和其他按键组合使用十分方便, 然而这是键盘的驱动软件的效果, 于是希望找到一个通用的解决方案。
试用过 CapsLock+ , 但是终究不如自定义来的顺心
于是参考 这篇文章 ,编写 AutoHotKey 脚本, 魔改了 CapsLock, 自定义了 CapsLock 组合其他键的功能
AutoHotKey 脚本可以编译成.exe的可执行文件, 不需要安装, 双击即可运行, 删除就是卸载
.exe文件大小一共也就 1M 左右, 在github、网盘或邮箱备份一份, 在其他...
fastjson 序列化对象临时忽略指定字段
如果希望 Java 对象中某字段不被 JSON
序列化,可以在字段上添加@JsonIgnore注解,在添加注解之后,每次序列化和反序列化都会忽略这个字段。
但在开发时,可能需要序列化单次临时忽略某字段,可以使用fastjson
的SimplePropertyPreFilter。
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.serializer.SimplePropertyPreFilter;
@lombok.Data
@lombok.AllArgsConstructor
public class Test {
private String id;
private ...
Git避免重复输入用户名密码
ssh协议
如果使用 SSH 方式连接远端(当执行类似git clone git clone [email protected]:xxx/xxx.git 后,在此仓库中的上传下载均采用 ssh 协议),并且设置了一个没有口令的密钥,这样就可以在不输入用户名和密码的情况下安全地传输数据。
https协议
从2021.08.13开始, GitHub不再支持账号和密码的方式来 pull 和 push 代码了,取而代之的是官方推出的 Token。
Token的官方使用教程
与密码不同的是,Token一旦生成,需要立即记住,当关闭页面就无法再查看。
所以更需要让 Git 帮忙缓存(本地保存) Token。
Git 缓存 Token 和缓存密码的原理相同。
当执行类似命令git clone ...
Git放弃(清除)本地所有修改,回到上次 commit 的初始状态
若想要放弃(清除)本地所有修改,回到上次 commit 的初始状态,可以执行
git reset --hard
git clean -xdf
git checkout .
此命令用来放弃所有还没有加入到缓存区(就是git add命令)的修改:内容修改与整个文件删除。
但是此命令不会删除掉刚新建的文件。
因为刚新建的文件还没已有加入到 git 的管理系统中。所以对于git是未知的,可以执行git clean命令删除。
git clean -xdf
删除新增但没有被git add的文件
git reset –hard
官网解释:Resets the index and working tree. Any changes to tracked files in the working...
Spring MVC-GET请求参数下划线转驼峰映射实体类
环境: Spring MVC/Spring-Boot
项目开发统一规定, 前后端交互所有参数名的单词间需要使用下划线连接, 例如: user_id
在 POST 请求交互时, 可以在实体类的字段上添加 JSON 注解, 使请求体中的 JSON 字符串直接映射为实体类, 转换步骤自动完成
如: @JsonProperty("user_id") private String userId;
但是在 GET 请求时, 对于下划线连接的参数无法直接映射封装为实体类(java 编程规范参数使用驼峰命名法), 需要编码接收参数并转换封装为实体对象, 过于繁琐, 如:
@Controller
@RequestMapping("/user")
public class UserControll...
外部参数传入awk后不一致问题
问题描述
在编写shell时, 需要向shell 中传递外部定义的参数, Google到这篇文章
https://blog.csdn.net/rj042/article/details/72860177
里面介绍了四种方法向 awk 中传递外部参数 , 于是直接参考文章的方法一使用
发现出现问题
于是写了一个简单的 shell 验证其中四个方法的正确性
shell 如下:
lot_num=$(date '+%Y%m%d%H%M%S%N'|cut -b 1-17)
export lot_num;
echo "$lot_num"
# method 1
awk 'BEGIN{print "method 1,"'$lot_num'}'
# method 2
awk 'BEGI...
Spring MCV-文件下载
在 springmvc 应用程序中下载文件有几种方法:
HttpServletRespone: 使用 HttpServletResponse 将文件直接写入 ServletOutputStream
ResponseEntity<InputStreamResource>: 返回包装在 ResponseEntity 中的 InputStreamResource 文件
ResponseEntity<ByteArrayResource>: 可以返回包装在 ResponseEntity 中的 ByteArrayResource 文件
HttpServletRespone
@GetMapping("/download")
public void downl...
shell 重启 Spring Boot
# 通过端口号获取旧线程的 pid
pid=`lsof -i:8080 | grep -v COMMAND | awk '{print $2}'`
# 结束旧线程
echo "旧应用进程id:$pid"
if [ -n "$pid" ]
then
kill -9 $pid
fi
# 启动新线程
nohup java -jar /path/service-1.0-SNAPSHOT.jar &
# 查询新线程的 pid
npid=`lsof -i:8080 | grep -v COMMAND | awk '{print $2}'`
echo "新的进程 $npid"
echo "启动成功_"
sleep 2
# 显示 log
tail -f /path/logs/serv...
共计 47 篇文章,6 页。