「 JAVA 」 十月 17, 2021

Servlet 之 Filter

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

原文地址:https://wyiyi.github.io/amber/2021/10/01/filter/

Servlet 作为Java Web 的基础,在 Servlet API 中提供了一个 Filter...

查看全文

「 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 」 一月 22, 2020

How to integrate SEATA AT mode with Spring Cloud

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

本文基于一个 Spring Cloud 业务实例,说明如何集成 SEATA AT 模式,进行分布式事务控制。

SEATA 是什么?

Seata: Simple Extensible Autonomous Transaction Architecture

Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模式,为用户打造一站式的分布式解决方案。 —— 引用自 SEATA 官方文档

AT 模式是...

查看全文

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

查看全文

「 JAVA 」 一月 05, 2020

Using Gradle Behind Proxy

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

在网络代理环境下使用 Gradle 时,可能会遇到以下三个问题:

  1. gradlew 下载对应 Gradle 发布版时无法下载
  2. 下载依赖时,提示连接超时
  3. SSL 证书无效

错误提示

Unable to tunnel through proxy. Proxy returns "HTTP/1.1 407 Proxy Authorization Required"

原因

wrapper 下载发布包时也需要配置代理

解决办法

试遍各种为 wrapper 配置代理的方法,均无果。用最直接的办...

查看全文
加载更多
0%