java
文章平均质量分 83
pumpkin84514
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
使用 Maven 开发 IntelliJ IDEA 插件
通过 Maven 开发 IntelliJ 插件,与 Gradle 类似,只需修改。原创 2024-11-24 23:20:16 · 2040 阅读 · 0 评论 -
ECMAScript相关
是 JavaScript 的标准规范,定义了 JavaScript 的核心语法和功能。它由组织维护。ECMAScript 通常简称为,它为不同环境中的 JavaScript(如浏览器、服务器、嵌入式设备等)提供了统一的标准。自 1997 年首次发布以来,ECMAScript 规范已经经历了多个版本更新,每个版本都引入了新特性。下面将介绍 ECMAScript 标准的发展历程及其各个版本中的重要新特性。原创 2024-10-20 21:55:34 · 792 阅读 · 0 评论 -
分布式追踪系统Jaeger
Jaeger 是一个分布式追踪系统,主要用于监控和故障排查分布式系统中的微服务架构。它帮助开发者跟踪请求在多个微服务中的路径,发现系统瓶颈,并分析各个服务之间的延迟和依赖关系。Jaeger 最早由 Uber 开发,现在已经成为 CNCF (Cloud Native Computing Foundation) 的孵化项目之一。原创 2024-10-19 22:07:16 · 1559 阅读 · 0 评论 -
spring boot3.2.x与spring boot2.7.x对比
相比2.7.x版本在性能、安全性、开发体验、以及现代化特性支持方面都有明显的优势,尤其是在 Jakarta EE、GraalVM 原生映像、以及 JDK 17+ 的支持上。对于正在维护现代企业应用的开发者来说,升级到 Spring Boot 3.2.x 将带来更多的好处和更好的开发体验。依赖的第三方库是否支持 Jakarta EE。使用的 Java 版本需要升级到 JDK 17 或更高。部署时,若有需要原生支持的应用,可以考虑 GraalVM 的原生映像支持。原创 2024-09-30 23:15:43 · 1763 阅读 · 0 评论 -
JDK9与JDK8对比
JDK 9 的新特性在模块化设计、集合处理、HTTP 客户端、垃圾收集等方面提供了更简洁、更高效的解决方案。相比 JDK 8,它更适合现代软件开发场景,如微服务、云原生应用和异步编程,开发者可以更轻松地编写高效、灵活的代码。原创 2024-09-30 23:10:42 · 1174 阅读 · 0 评论 -
Maven Surefire Plugin
Maven Surefire Plugin 最新版本新特性详解Maven Surefire Plugin 是用于运行单元测试和集成测试的重要工具,支持 JUnit、TestNG 等测试框架。插件的新版本引入了许多新特性和配置选项,这些功能提升了测试执行的性能、灵活性和并发能力。在本节中,我们将详细介绍 Surefire Plugin 的各个配置选项及其用途,并结合实际使用场景和示例进行讲解。1. forkCount作用:forkCount 选项指定在测试过程中 JVM fork 的数量。多 JVM原创 2024-09-29 20:16:36 · 2499 阅读 · 0 评论 -
JVM类数据共享(CDS)
JVM类数据共享(Class Data Sharing, CDS)是一种优化JVM启动速度和内存使用的技术。它通过在多个Java进程之间共享类元数据,避免每个进程重复加载和解析相同的类,进而提升启动速度并节省内存。可以简单理解为:在一个大家都需要读取的文件中,JVM通过预先解析类信息,存储为一个共享的类数据文件,当多个Java进程需要时,可以从这个共享文件中读取,而不是每次都重新加载。JVM类数据共享(CDS)是JVM的一项优化技术,旨在加快启动时间和减少内存使用。原创 2024-09-29 20:07:00 · 1577 阅读 · 0 评论 -
`maven-compiler-plugin` 指定 JDK 版本
在 Maven 项目中,通常可以通过设置 Maven 的编译插件 () 来指定使用的 JDK 版本进行编译。然而,如果希望基于不同的路径或不同的 JDK 环境进行编译,需要一些额外的配置,如通过环境变量、 插件或配置 来达到目标。最常见的方式是通过配置 ,在 文件中指定 Java 编译版本。这个配置不会明确指定具体的 JDK 路径,而是使用环境中设置的 JDK。上面的配置指定了 Maven 编译 Java 1.8 版本的代码(假设系统环境中的 已设置为 JDK 1.8)。如果你有多个 JDK 版本,原创 2024-09-28 00:10:55 · 4256 阅读 · 0 评论 -
jacoco代码覆盖率管理
设置覆盖率阈值提供了灵活的覆盖率阈值配置,支持行覆盖率和分支覆盖率的设置。通过check目标可以根据项目需求定义最低标准,确保代码质量。详细配置:行覆盖率、分支覆盖率、方法覆盖率、类覆盖率等指标都可以单独设定阈值,灵活控制构建流程中的覆盖率标准。实践应用:通过逐步提升覆盖率阈值,结合 CI/CD 工具进行自动化检测,可以有效保证代码的质量和可测试性。通过这些配置和实践建议,你可以轻松配置和使用 Jacoco 进行全面的代码覆盖率管理。原创 2024-09-20 22:40:38 · 997 阅读 · 0 评论 -
jacoco-maven-plugin使用
基本功能提供了和report两个核心目标,分别用于准备覆盖率数据和生成报告。合并报告:多模块项目可以使用目标将多个模块的覆盖率数据合并。覆盖率检查:通过check目标,可以设定覆盖率的最低要求,确保代码质量。高级功能:可以与 CI/CD 工具集成、排除特定类、生成多种格式的报告等。常用命令总结:运行测试并生成覆盖率报告。:跳过生成覆盖率报告。通过这些配置和使用技巧,你可以轻松集成 Jacoco 并根据项目需求调整配置。原创 2024-09-20 22:31:19 · 3008 阅读 · 0 评论 -
Spring Boot 从 2.7.x 升级到 3.3注意事项
从 Spring Boot 2.7.x 升级到 3.3 是一个涉及较多变动的过程,特别是迁移到 Jakarta EE 和 JDK 17。项目在 JDK 17 上正常运行。所有javax.*包改为jakarta.*。更新 Spring 依赖和第三方库以支持 Jakarta EE 9。仔细检查配置文件和日志,处理废弃 API。原创 2024-09-19 23:10:04 · 5297 阅读 · 0 评论 -
JDeps 使用指南
jdeps是一个 Java 类依赖分析工具,允许开发者深入分析 Java 应用程序的依赖情况,包括类、包、模块和 JDK 内部 API 的使用。下面详细介绍jdeps的常用命令和输出解释。这个命令会分析指定 JAR 文件中的依赖关系,并输出每个类的依赖情况。这表明依赖于java.base模块,且MyClass依赖于和。该选项会简化输出,仅显示包与包之间的依赖,而不列出每个类的详细依赖。这表示包依赖于java.util和java.io包。在 Java 9 及以上版本,Java 引入了模块系统。通过jdeps。原创 2024-09-19 23:01:31 · 2475 阅读 · 0 评论 -
Maven踩坑——父模块生命周期的操作会被子模块继承
Maven 共有三个主要生命周期,每个生命周期由多个阶段组成。以下是每个生命周期和其阶段的详细描述。生命周期阶段描述默认生命周期validate验证项目是否正确且所有必要信息是否可用。initialize初始化构建状态,设置一些属性。生成项目需要的源码(如果有相应插件)。处理项目主源码。生成项目所需的资源文件。复制和处理资源文件至目标目录。compile编译主源码。处理编译后的类文件(如字节码增强)。生成测试源码。处理测试源码。生成测试资源文件。复制和处理测试资源文件至目标目录。编译测试代码。原创 2024-09-17 14:02:00 · 1345 阅读 · 0 评论 -
贫血模型 (Anemic Model) 和 富含知识的模型 (Rich Model)
贫血模型通常指的是那些没有将业务逻辑封装到实体中的设计。在这种模型中,实体主要由属性组成,并且这些实体通常只包含简单的getter和setter方法。在实际应用中,可以根据项目的具体需求和团队的技术偏好来选择合适的模型。有时候也会采用混合的方式,即某些实体采用富含知识的模型,而某些则采用贫血模型。富含知识的模型是指将业务逻辑封装在实体内的设计。实体不仅包含属性,还包括与这些属性相关的业务逻辑。在软件开发中,特别是在面向对象编程领域,贫血模型和富含知识的模型是两种不同的设计模式或哲学。原创 2024-08-02 17:44:30 · 482 阅读 · 0 评论 -
Allure 和 JUnit 4结合学习
Allure 是一个灵活的、开源的测试报告工具,可以帮助生成详细、可读的测试报告。它能够集成多种测试框架(如 JUnit、TestNG、Cucumber 等)和 CI/CD 工具(如 Jenkins、TeamCity 等),提供对测试执行过程的详细视图,包括测试步骤、断言、测试结果等。原创 2024-07-20 23:13:13 · 1212 阅读 · 0 评论 -
ThreadLocal的使用
Java 中的原理、由来、使用场景和一个简单的使用示例。原创 2024-06-04 00:00:32 · 489 阅读 · 0 评论 -
基于Spring Security添加流控
添加依赖:引入Spring Security和Sentinel-Core的依赖。配置Sentinel:通过类初始化Sentinel并加载流控规则。创建Sentinel过滤器:自定义过滤器实现流量控制。集成Spring Security:配置类中注册过滤器并定义安全策略。按照上述步骤,您可以基于Spring Security应用集成Sentinel-Core,实现流量控制,同时对白名单URL实施特殊处理。原创 2024-05-31 22:30:50 · 758 阅读 · 0 评论 -
OncePerRequestFilter 和 GenericFilterBean比较
和都是Spring框架提供的用于构建自定义Servlet过滤器(Filter)的基类,它们主要用于处理Web请求的拦截和处理逻辑。原创 2024-05-30 22:28:59 · 921 阅读 · 0 评论 -
Mokito的一些API
Mockito是一个Java单元测试框架,它允许开发者创建和配置模拟对象(mock objects),以便在隔离的环境中测试代码,尤其是当实际对象难以构造或其行为不确定时。下面是一些核心的Mockito API及其使用场景和代码示例。原创 2024-05-24 22:47:18 · 1441 阅读 · 0 评论 -
Session和JWT(JSON Web Token)的对比
Session和JWT(JSON Web Token)都是用于用户身份验证和授权的机制,但它们的工作原理、存储位置、可扩展性和安全性等方面有所不同。综上所述,选择Session还是JWT取决于具体应用场景的需求,如安全性要求、扩展性需求以及是否需要跨域支持等。原创 2024-05-21 21:59:48 · 762 阅读 · 0 评论 -
从OpenJDK 8升级到OpenJDK 21注意事项
从OpenJDK 8升级到OpenJDK 21是一个跨越多个版本的过程,涉及到众多的语言特性、API变更、性能优化和废弃特性。原创 2024-05-16 22:26:37 · 3281 阅读 · 0 评论 -
content-type之multipart/form-data和application/json比较
对于前后端分离的应用,Spring Boot后端通常定义RESTful API,前端通过Ajax调用这些API传递JSON数据。在前后端分离架构中,Spring Boot作为后端框架,通过明确区分不同的。,可以灵活地处理数据交互和文件上传需求,同时保持接口的清晰和易用性。对于文件上传,Spring Boot提供了。原创 2024-05-11 03:22:27 · 2777 阅读 · 0 评论
分享