JAVA 十一月 17, 2024

Maven 配置中的仓库和镜像

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

Maven 中,仓库(Repository)是指存放 pomjar 等文件的地方,分为本地仓库和远程仓库。

本地仓库(Local Repository)

本地仓库是 Maven 在本地文件系统中的...

查看全文

JAVA 十月 13, 2024

Java 正则表达式的灾难性回溯

文章字数 9.7k 阅读约需 9 mins.

新建一个 Backtracking.java 文件,内容如下:

public class Backtracking {
    public static void main(String[] args) {
        System.out.println(System.getProperty("java.version"));
        System.out.println("The first regex evaluation will never end in JDK <= 9:&...
查看全文

JAVA 九月 08, 2024

【转】掌握 Java 反射机制

文章字数 10k 阅读约需 10 mins.

原文地址:https://wyiyi.github.io/amber/2024/09/01/Reflection/

Java 反射机制允许程序在运行时取得任何类的内部信息,并能直接操作任意对象的内部属性及方法。

反射机制常用的类

  • java.lang.Class:代表类和接口,提供了获取类信息的方法。
  • java.lang.reflect.Constructor:代表类的构造函数。
  • java.lang.reflect.Field:代表类的成员变量。
  • java.lang.reflect.Method:...
查看全文

TEST 八月 11, 2024

Java 后端自动化测试

文章字数 22k 阅读约需 20 mins.

测试用例是一组输入、执行条件和预期结果的集合,用于验证软件系统的正确性。

自动化测试是指使用自动化工具或脚本来执行测试用例,以减少人工测试的工作量,提高测试效率和准确性。

测试金字塔 是一种指导自动化测试策略的框架,它建议在不同层次上分配不同数量和类型的测试,以确保成本效益、减轻团队负担并提高测试准确性。这个概念最初由 Mike Cohn 提出,主要分为三个层次:单元测试(Unit Tests)、服务测试(Service Tests,也称为集成测试)、以及用户界面测试(UI Tests)。越靠近...

查看全文

TEST 八月 04, 2024

构造 ApacheBench 可用的 postfile

文章字数 11k 阅读约需 10 mins.

Web 开发过程中,文件上传功能是常见的需求。对于开发者而言,确保上传功能的稳定性和性能至关重要。

本文将带你了解如何使用ApacheBench性能测试工具对文件上传功能进行性能测试,特别是如何按照规范构造上传文件的请求体,以便评估和提高服务器在高并发情况下的处理能力。

ApacheBench(简称ab)是 Apache 服务器自带的一个性能测试工具,它能够模拟多用户并发请求,从而评估服务器在高负载下的性能表现。若系统中未安装 Apache 服务器,可前往 Apache 官网下载和安装。更多...

查看全文

JAVA 七月 28, 2024

Maven 实用技巧

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

Maven Wrapper 借鉴了 Gradle Wrapper 的思想,可以在工程源码中提交 Wrapper 的脚本和配置,之后在工程目录中使用 mvnwmvnw.cmd 命令代替 mvn 命令,从而保证了各个开发及持续集成环境在构建时使用的 Maven 版本是一致的。

Maven Wrapper 最主要的是下面三个文件,可以使用 mvn wrapper:wrapper -Dtype=only-script(或 -Dtype=script) 命令生成,也可直接从其他工程复制:

├── ....
查看全文

JAVA 七月 07, 2024

【转】Java 8 In Action Lambda

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

原文地址:https://wyiyi.github.io/amber/

在优化代码的过程中,通过使用Java 8 lambda表达式,减少代码量,提高代码可读性。

Lambda 表达式可以理解为一种匿名函数,它没有名称,但有参数列表、函数体、返回类型,并且可能还有一个可能抛出的异常列表。Lambda 表达式可以作为参数传递给方法,也可以存储在变量中。与匿名内部类相比,Lambda 表达式更加简洁。

从一个例子入手:写一个比较苹果的重量的逻辑:

  • 传统方式:
Comparator<Apple...
查看全文

SPRING 四月 27, 2024

【译】如何在 Spring 中将 @RequestParam 绑定到对象

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

你的请求映射方法中是否有多个用 @RequestParam 注解的参数?是否感觉它们影响了易读性?

当请求只有一两个入参时,这个注解看起来非常直观,但是当参数列表变长时,你可能会感到不知所措。

你不能在对象内部使用 @RequestParam 注解,但这并不意味着你没有其他解决方案。在这篇文章中,我将向你展示 如何在 Spring 应用中将多个请求...

查看全文

JAVA 二月 03, 2024

基于 MyBatis 拦截器机制实现一个敏感数据处理组件

文章字数 22k 阅读约需 20 mins.

MyBatis 作为一个流行的持久层框架,提供了拦截器 Interceptor 机制,允许开发者在 SQL 执行过程中插入自定义逻辑。本文将深入探讨 MyBatis 拦截器的用法和使用场景,并以处理敏感数据场景为例实现了一个自定义拦截器。

MyBatis 官网中 Interceptor 的介绍:

MyBatis 允许你在映射语句执行过程中的某一点进行拦截调用。默认情况下,MyBatis 允许使用插件来拦截的方法调用包括:

  • Executor (update, query, flushStatements...
查看全文

JAVA 十二月 24, 2023

离线环境下 Maven 编译打包

文章字数 2.8k 阅读约需 3 mins.

某些离线场景下我们可能无法连接 Maven 中央库或其他内网私服,又想通过 Maven 对源码进行编译打包。

本文给出了在离线环境下使用 Maven 编译打包的方案。

假设目标环境已经安装好了 JDK 和 Maven,并且将要编译的源码工程 demo-project 放置在了 /maven-offline/build 路径下。

先在联网环境成功执行一次编译,保证使用的 Maven 本地缓存仓库(默认路径 ~/.m2/repository)中包含了编译所需的依赖。

将本地缓存仓库目录 repository...

查看全文
加载更多
0%