「 JAVA 」 十月 17, 2021
Servlet 之 Filter
文章字数 7.3k 阅读约需 7 mins.
原文地址:https://wyiyi.github.io/amber/2021/10/01/filter/
Servlet 作为Java Web 的基础,在 Servlet API 中提供了一个 Filter 接口,Filter,又称过滤器。
所谓过滤器顾名思义是用来过滤的,可以从客户端向服务端发送请求进行过滤,也可以对服务器返回响应进行处理。
根据上面的流程可以看出,Filter的作用就是在用户请求到达Servlet之前,进行拦截。在拦截到用户的请求后,我们可以实现一些自定义的业务逻辑。
例如:...
「 JAVA 」 八月 08, 2021
Flyway 实战
文章字数 7.8k 阅读约需 7 mins.
Using Liquibase with Gradle in Spring Project 中,介绍了数据库版本控制工具 Liquibase,并且总结到
面向 SQL,选择 Flyway
不面向 SQL,选择 Liquibase
如果你还在单独分发数据库变动脚本,甚至简单粗暴的将开发库直接导出并导入生产环境,建议一起来了解一下 Flyway 的用法。
Flyway 中的概念可查阅 官方文档,这里挑选一些重要的进行简单介绍。
Schema History Table
Flyway 对数据库进行版...
查看全文「 JAVA 」 四月 11, 2021
Java 应用远程调试
文章字数 10k 阅读约需 10 mins.
软件开发会时经常会遇到这样的场景:
- 现场反馈的问题,在本地环境无法重现,可能需要将现场数据库导回来才能重现问题
- 生产环境中的服务无法直接从本地开发环境进行连接,进而无法使用本地代码进行调试
在上面的场景中,无论是将现场库导出,还是开通生产环境服务的访问权限,都是非常困难且不安全的。
本文将介绍一种由 Java 平台提供的,远程调试 Java 应用的方法。
JPDA(Java Platform Debugging Architecture)是一个多层调试架构,支持在不同操作系统、虚拟机及 JDK...
查看全文「 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 位数据模型 (如果可用...
查看全文
「 JAVA 」 七月 26, 2020
为什么应该设置 com.sun.management.jmxremote.rmi.port?
文章字数 5.1k 阅读约需 5 mins.
在使用 JMX 对 Java 应用进行监控时,一般会在启动时添加如下参数:
java \
-Djava.rmi.server.hostname=192.168.16.237 \
-Dcom.sun.management.jmxremote.rmi.port=2909 \
-Dcom.sun.management.jmxremote.port=9009 \
-Dcom.sun.management.jmxremote.authenticate=false \
-Dcom.sun.management...
查看全文
「 JAVA 」 七月 12, 2020
为什么不建议使用双括号初始化?
文章字数 2.6k 阅读约需 2 mins.
Map<String, Object> map = new HashMap<String, Object>() {{
put("name", "Alpha");
put("age", 8);
}};
以下内容引自 The Java™ Tutorials - Initializing Fields:
查看全文Initializing Instance Members
Normally, you would put code to initialize an instance variable...
「 JAVA 」 六月 19, 2020
Gradle HTTP 超时设置
文章字数 3.1k 阅读约需 3 mins.
在使用 Nexus 时,很罕见的遇到了超时问题:
> Unable to load Maven meta-data from http://localhost:8081/repository/test/io/github/alphahinex/example/0.1.2-SNAPSHOT/maven-metadata.xml.
> Could not HEAD 'http://localhost:8081/repository/test/io/github/alphahinex...
查看全文
「 JAVA 」 一月 17, 2020
GitHub Packages in Action
文章字数 9.4k 阅读约需 9 mins.
GitHub Packages 可以用来当做 Release 版本 jar 包的 Maven 仓库。
与 Maven 中央库比,没有繁琐的申请流程,可以快速的将 jar 包发布出去供他人使用。
与 Nexus 私服相比,无需架设公网访问环境。
缺点 是只支持 Release 版本的发布和下载,Snapshot 版本虽然可以发布上去,但无法被其他项目依赖。目前尚不支持自行删除已上传的 jar 包,需联系 GitHub 协助处理。
本文以实例说明,在 Gradle 中如何利用 GPR(GitHub ...
查看全文