「 SERVLET 」 十二月 27, 2020
Override same class
文章字数 7.5k 阅读约需 7 mins.
实际 Java Web 项目中经常会遇到这样的场景:希望对依赖的某个三方库中的行为进行覆盖式的定制(修改三方库中的某些行为),但并不希望发布定制的版本至私服。
通常在使用 WAR 包发布应用时,可将定制的类编译成 class 文件,放入 WEB-INF/classes
路径中,即可覆盖放置在 WEB-INF/lib
路径下的三方库中同名类,达到定制的目的。
那么为什么可以这样?
在两个相同的 class 必须都存在于 JAR 包中时,又怎么实现这种需求呢?
Servlet 规范
查看全文「 DEVOPS 」 十二月 20, 2020
TeamCity Kotlin DSL
文章字数 13k 阅读约需 12 mins.
将持续集成环境的配置代码化(Configuration as code)有很多好处:
- 可借助版本控制系统(VCS)对配置进行管理
- 很容易对配置变更进行审查(review)
- 提高配置的可移植性
- 不同的分支可以执行不同的构建,甚至是未合并的请求分支以及历史构建
目前常见的持续集成服务都提供(甚至仅有)代码化配置方式,如:
- Travis CI 的
.travis.yml
- GitHub Actions 的放在代码仓库
.github/workflows
路径下的 workflow yml 文件 - GitLab...
「 SHELL 」 十二月 13, 2020
zsh
文章字数 5k 阅读约需 5 mins.
macOS Catalina 飞起来了 之后,发现打开终端时会提示 The default interactive shell is now zsh.
从 macOS Catalina 版开始,Mac 将使用 zsh 作为默认登录 Shell 和交互式 Shell。
默认情况下,Mac 使用 zsh 或 bash 作为登录 Shell 和交互式 Shell 的命令行解释器:
- 从 macOS Catalina 版开始,zsh (Z shell) 是所有新建用户帐户的默认 Shell。
- bash 是...
「 JAVA 」 十二月 06, 2020
如何确定装载了哪个类
文章字数 4.3k 阅读约需 4 mins.
某些时候,我们可能希望知道 ClassLoader 里到底装载的是哪个 class,比如当两个 jar 包中存在 package 和 Class 名完全相同的两个类时。
在 java 命令的帮助信息中,有如下内容(部分):
$ java -help
用法: java [-options] class [args...]
(执行类)
或 java [-options] -jar jarfile [args...]
(执行 jar 文件)
其中选项包括:
-d32 使用 32 位数据模型 (如果可用...
查看全文
「 K8S 」 十一月 22, 2020
K8s ConfigMap
文章字数 8.2k 阅读约需 7 mins.
在 k8s 集群中部署第一个应用 中,完成了一个基本的 NGINX 服务的部署,但在真实环境中使用 NGINX 时,一般都需要定制其配置文件,使满足实际代理需求。K8s 提供了一个 ConfigMap 的概念,允许将配置文件与镜像文件分离,以使容器化的应用程序具有可移植性。
可以按字面方式,将 ConfigMap,理解为一个 Config 的 Map:
- Map 的 Key 为配置标识,可以是文件名等
- Map 的 Value 为配置内容,可以是字符串、文本内容等
一个 ConfigMap 中可...
查看全文「 K8S 」 十一月 08, 2020
在 Mac 的 Docker Desktop 中运行 K8s
文章字数 8.8k 阅读约需 8 mins.
Docker Desktop for Mac 从 Docker Community Edition 18.06.0-ce-mac70 2018-07-25 版本起,添加了对 Kubernetes 的支持,可以方便的在 Mac 上运行一个单节点的 K8s 集群。
在 Docker Desktop 的 Preferences
中的 Kubernetes
页面里,提供了一个 Enable Kubernetes
选框,点击之后即可在 Mac 上启动 K8s。
然而点击之后,就没有然后了,一直是下图这个状...
查看全文「 CHROME 」 十一月 01, 2020
危险!不要打开!
文章字数 4.9k 阅读约需 4 mins.
使用 Chrome 访问某些网站时可能会遇到上面的情况。
点击 高级
按钮,有些场景下会有继续访问该网站的链接,点击后即可继续访问;但有些时候会出现如下界面,无法继续访问:
除非你知道自己要访问的网站里面都包含什么,也清楚进去之后会产生什么后果,否则请立刻关闭此页面。
除非你知道自己要访问的网站里面都包含什么,也清楚进去之后会产生什么后果,否则请立刻关闭此页面。
除非你知道自己要访问的网站里面都包含什么,也清楚进去之后会产生什么后果,否则请立刻关闭此页面。
当出现如上图所示情况时,可在此页面...
查看全文