SERVLET 十二月 27, 2020

Override same class

文章字数 7.5k 阅读约需 7 mins.

实际 Java Web 项目中经常会遇到这样的场景:希望对依赖的某个三方库中的行为进行覆盖式的定制(修改三方库中的某些行为),但并不希望发布定制的版本至私服。

通常在使用 WAR 包发布应用时,可将定...

查看全文

SERVLET 十二月 27, 2020

Override same class

文章字数 7.5k 阅读约需 7 mins.

实际 Java Web 项目中经常会遇到这样的场景:希望对依赖的某个三方库中的行为进行覆盖式的定制(修改三方库中的某些行为),但并不希望发布定制的版本至私服。

通常在使用 WAR 包发布应用时,可将定制的类编译成 class 文件,放入 WEB-INF/classes 路径中,即可覆盖放置在 WEB-INF/lib 路径下的三方库中同名类,达到定制的目的。

那么为什么可以这样?

在两个相同的 class 必须都存在于 JAR 包中时,又怎么实现这种需求呢?

Servlet 规范

Java(TM...

查看全文

DEVOPS 十二月 20, 2020

TeamCity Kotlin DSL

文章字数 13k 阅读约需 12 mins.

将持续集成环境的配置代码化(Configuration as code)有很多好处:

  1. 可借助版本控制系统(VCS)对配置进行管理
  2. 很容易对配置变更进行审查(review)
  3. 提高配置的可移植性
  4. 不同的分支可以执行不同的构建,甚至是未合并的请求分支以及历史构建

目前常见的持续集成服务都提供(甚至仅有)代码化配置方式,如:

  1. Travis CI.travis.yml
  2. GitHub Actions 的放在代码仓库 .github/workflows 路径下的 workflow yml 文件
  3. 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 位数据模型 (如果可用...
查看全文

CLOUD 十一月 29, 2020

腾讯云架构高级工程师

文章字数 5.3k 阅读约需 5 mins.

疫情期间采用线上考试的方式。考试时间 120 分钟,总分 100 分,共 65 题(30 单选 + 15 多选 + 20 案例分析),均为单选及多选形式,多选不提示选项个数。
通过条件 70 分以上。
线上考试可提前进入考场,开始考试 30 分钟后不得登录系统。

考试过程中浏览器会进入全屏,离开作答界面或退出全屏可能将引发疑似作弊告警。各类违规行为累计出现5次及以上,将视为作弊,取消考试成绩。

考试结束后当场显示成绩,考后7个工作日内将发放考试结果通知。

可提前在 这里 进行试考,检查设备是否满足考...

查看全文

K8S 十一月 22, 2020

K8s ConfigMap

文章字数 8.2k 阅读约需 7 mins.

在 k8s 集群中部署第一个应用 中,完成了一个基本的 NGINX 服务的部署,但在真实环境中使用 NGINX 时,一般都需要定制其配置文件,使满足实际代理需求。K8s 提供了一个 ConfigMap 的概念,允许将配置文件与镜像文件分离,以使容器化的应用程序具有可移植性。

可以按字面方式,将 ConfigMap,理解为一个 Config 的 Map:

  • Map 的 Key 为配置标识,可以是文件名等
  • Map 的 Value 为配置内容,可以是字符串、文本内容等

一个 ConfigMap 中可...

查看全文

K8S 十一月 15, 2020

K8s 命名空间

文章字数 2.7k 阅读约需 2 mins.

Kubernetes 支持在一个物理集群上划分多个虚拟集群,这些虚拟集群即 命名空间

  • 在同一个命名空间中,资源名称须保持唯一。但在不同命名空间中,可以存在相同名称的资源。
  • 每一个资源只能隶属于一个命名空间。
  • 但命名空间本身不能属于另一个命名空间。

可以通过如下命令查看哪些资源在或不在命名空间中:

# In a namespace
$ kubectl api-resources --namespaced=true

# Not in a namespace
$ kubectl api-resources...
查看全文

K8S 十一月 08, 2020

在 Mac 的 Docker Desktop 中运行 K8s

文章字数 8.8k 阅读约需 8 mins.

Docker Desktop for MacDocker 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 访问某些网站时可能会遇到上面的情况。

点击 高级 按钮,有些场景下会有继续访问该网站的链接,点击后即可继续访问;但有些时候会出现如下界面,无法继续访问:

除非你知道自己要访问的网站里面都包含什么,也清楚进去之后会产生什么后果,否则请立刻关闭此页面。

除非你知道自己要访问的网站里面都包含什么,也清楚进去之后会产生什么后果,否则请立刻关闭此页面。

除非你知道自己要访问的网站里面都包含什么,也清楚进去之后会产生什么后果,否则请立刻关闭此页面。

当出现如上图所示情况时,可在此页面...

查看全文

CLOUD 十月 25, 2020

使用 Telnet 调用 Dubbo 服务

文章字数 6.9k 阅读约需 6 mins.

当使用 Dubbo 作为 RPC 框架时,有时会希望验证 provider 提供的服务是否好用,比起开发一个 consumer,可以使用自带工具来进行更快速的验证。

本文以使用 ZooKeeper v3.6.1 为注册中心,dubbo-samples-zookeeper 示例代码为例,介绍一下自 dubbo v2.0.5 版本开始支持的 telnet 命令用法。

新版本的 dubbo 默认不会开启 telnet 调用,需明确指定 如下 配置,才可使用:

dubbo.provider.telnet...
查看全文
加载更多
0%