主页

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...

阅读更多