配置 Tomcat 监控 class 和 lib 变更并自动重新加载
在 context.xml 的 Context 标签中,设定 reloadable="true" 即可。 123<Context reloadable="true"> <!-- Other configurations --></Context> 配置完毕后重启 Tomcat 使配置生效,然后 Tomcat 在监控到项目的 class 或 lib 有变化后,就会自动重新加载这个 webapp。 但是这个功能会显著增加 Tomcat 的性能消耗,故不建议在生产环境中使用。
更多如何将项目部署至 Tomcat 的根下
有两种方法可以实现将项目部署到 Tomcat 的根下。 删掉自带的 ROOT / 目录,然后将项目的 war 包重命名为 ROOT.war 将项目正常部署 (假设 war 包名为 your_project.war),然后修改 conf/server.xml 中的 Context Root为如下内容: 1<Context path="" docBase="your_project" debug="0" reloadable="true"></Context> 参考文献:https://stackoverflow.com/questions/5328518/deploying-my-application-at-the-root-in-tomcat
更多在 MySQL 中修改表和列的排序规则
使用如下 SQL 语句即可更新一张表的字符集 (character set) 和排序规则 (collation): 12-- 此处假设使用utf8字符集,以及使用utf8_unicode_ci排序规则ALTER TABLE `table_name` CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci; 然后可以使用如下 SQL 查询表和列的字符集和排序规则是否修改成功: 123456789-- 查询表的信息SELECT `TABLE_SCHEMA`, `TABLE_NAME`, `TABLE_COLLATION`FROM `information_schema`.`TABLES`WHERE `TABLE_NAME` = 'table_name';-..
更多让 MyBatis 把查询结果以 Map 形式返回
在使用 MyBatis 查询数据库时,偶尔会出现短时间高频查询的情况。或者,会被短时间高频率查询的数据需要通过另一个微服务的接口来获取。显而易见,高频率的查询数据库,或者高频率的调用微服务的接口,是会对性能产生一定影响的。 在这种情况下,或许可以考虑将相关的数据一次性全部查询出来,然后根据某一列作为 key,将其存放在一个 Map 中,把这个 Map 当成一个临时的缓存。 示例数据假设有这样的一组数据,其中保存了某公司的一系列基地的信息,包括基地名称、基地代号,和基地所在的区。 id base_name base_code location 1 梅陇 ML 徐汇区 2 富锦路 FJL 宝山区 3 龙阳路 LYL 浦东新区 4 北翟路 BDL 普陀区..
更多使用frp实现内网ssh穿透
最近需要远程访问一台虚拟机内的Linux,因为虚拟机没有公网IP,因此选择使用frp转发ssh流量的方式来实现远程访问。首先访问frp的release页面并根据操作系统和CPU下载相应的版本,之后解压得到frpc和frps文件。frps是服务端版本,它需要部署在一台拥有公网IP的主机上,它的配置frps.ini如下[common]bind_port = 10625token = y9XBLEu2ymW1s5N3W7OuDPhUG4IohVmQ其中bind_port代表了它所监听的端口号,而token则是客户端连接时需要用到的验证信息。frpc是客户端版本,它的配置frpc.ini如下[common]server_addr = 100.26.21.285server_port = 10625authenti..
更多修复使用 GPG 密钥时 git commit 卡住的问题
使用 GPG 密钥时 git commit 有时候会卡住。可以通过一下命令来重启 gpg-agent 和 ssh-agent:1 gpgconf --kill gpg-agent && killall ssh-agent
更多修复 WSL2 镜像网络模式下无法连接 Docker 的问题
问题在 2023 年 9 月的 Windows 11 更新中,WSL2 支持了新的网络模式:镜像(mirrored)。它能够通过 localhost 地址从 WSL2 内部连接到 Windows 的 127.0.0.1 地址。可以在 %UserProfile%/.wslconfig 添加 networkingMode=mirrored 来启用它。但是这会导致无法连接到 Docker 的问题:dial tcp 127.0.0.1:3306: connect: connection refused。该问题的原因是 Docker 使用了 iptables 来转发端口。可以通过以下方法来修复这个问题。使用 Docker Desktop方法 1直接将 Docker Desktop 升级到 4.26 以上版本即可,该..
更多如何升级 Golang 和依赖的版本
升级 Golang 版本在项目下使用命令:go mod edit -go=1.21.3,也可以直接修改 go.mod 文件的 go 字段。升级依赖项版本在项目下使用命令:go get -u ./...,此命令会将项目中所有依赖项的版本更新为最新版本。依赖项破坏性更新如果依赖项的更新是破坏性的,即不兼容之前的版本,则无法通过 go 工具来自动更新。此时需要手动调整 go.mod 文件和导入的包名。例如 beego 的升级:从 github.com/astaxie/beego v1.12.2 修改为 github.com/beego/beego/v2。例如 gorm 的升级:从 github.com/jinzhu/gorm v1.9.12 修改为 gorm.io/gorm v1.25.5;数据库驱动则修改为 ..
更多CTF | 2023 强网杯 S7 线上赛 WriteUp
引言 2023 第七届强网杯全国网络安全挑战赛 线上赛 2023年12月16日09:00 - 2023年12月17日17:00 https://qiangwangbei.com/ https://bm.ichunqiu.com/2023qwb 又是一年强网杯,不过从暑期一直推迟到了12月,好像线上赛的时间同步把上一届的青少年赛办了 (pyq 又看到有小师傅去线下了) 今年继续和校队的师傅们一起打了线上赛,感觉这比赛越来越卷了,而且 py 过于严重,题目都被 py 烂了没啥分了,摸了。 这篇 writeup 是和队友们一起写的,感谢学弟们能一起来打比赛,应该是喵喵的最后一次强网杯了吧。 Cryptonot only rsa 这个模数好像很不安全,那你能解密出flag吗 附件下载 提取码(GAME)备用下..
更多Kubernetes的安装和使用(二)
k8s的使用构建和运行镜像编写一个go程序12345678910111213141516package mainimport ("io""log""net/http")func main() {http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {io.WriteString(w, "[v1] Hello, Kubernetes!")})log.Printf("v1 access http://localhost:3000\n")panic(http.ListenAndServe(":3000", nil))}编写Dockerfile12345678910111213141516171819# 引入golang的环境,并设置别..
更多