Java编程
文章平均质量分 91
Java 编程知识、技巧等
markvivv
这个作者很懒,什么都没留下…
展开
-
【译】构建 RESTful Web Service
本指南属于入门指引系统,将指导您使用 Spring 创建 "Hello, World" RESTful 网络服务。原创 2023-12-18 09:06:50 · 115 阅读 · 0 评论 -
【译】虚拟线程:绝对优势
深入了解虚拟线程如何提高应用程序的性能和可扩展性,同时将线程管理开销降到最低。探索虚拟线程是一件很棒的事情,它是 Java 的一项强大功能,有望彻底改变多线程应用程序。在本文中,我们将深入探讨虚拟线程如何提高应用程序的性能和可扩展性,同时将线程管理的开销降到最低。让我们开始这段旅程,充分发挥虚拟线程的潜力!为了证明这个用例,我们将创建一百万个平台线程和虚拟线程。生成这些线程后,我们将使用HeapHero和fastThread工具分析它们的堆和线程行为。原创 2023-12-07 10:04:01 · 202 阅读 · 0 评论 -
【译】Spring 6 入参数据校验: 综合指南
Spring 中的编程式验证器 API 的核心是允许创建自定义验证器类,并定义仅靠注解可能无法轻松捕获的验证规则。以下是创建自定义验证器对象的一般步骤。创建一个实现接口的类。重载supports()方法,以指定该验证器支持哪些类。实现validate()或方法,以定义实际的验证逻辑。使用或方法,以给定的错误代码拒绝给定字段。我们可以直接调用方法来添加其他类型的错误。> clazz) {原创 2023-11-24 14:03:42 · 831 阅读 · 0 评论 -
【译】什么时候使用 Spring 6 JdbcClient
自Spring 6.1起,JdbcClient为 JDBC 查询和更新操作提供了统一的客户端 API,从而提供了更流畅、更简化的交互模型。本教程演示了如何在各种场景中使用 JdbcClient。从数据库中查询行时,我们可以使用结果集检索列的值,如第 3.3 节所示。但如果我们想增加灵活性和代码的简洁性,可以考虑使用 RowMapper。下面的 PersonRowMapper 类实现了 RowMapper 接口,并覆盖了 mapRow() 方法,该方法包含将数据库行映射到 Person 实例的逻辑。原创 2023-11-22 08:39:15 · 1749 阅读 · 0 评论 -
JDK 21新特性之记录模式(JEP 440: Record Patterns)
使用记录模式(Record Patterns)来封装值,从而增强 Java 编程语言的功能。记录模式和类型模式(Type Patterns)可以嵌套,以实现强大、声明性和可组合的数据导航和处理形式。原创 2023-11-02 20:30:00 · 420 阅读 · 0 评论 -
JDK21新特性之分代 ZGC
分代ZGC(Generational ZGC)为年轻和年老的对象保留不同的世代,从而提高应用程序的性能。这将使 ZGC 能够更频繁地收集年轻对象,因为年轻对象往往在很年轻时就会死亡。ZGC 从 JDK 15 开始就可用于生产,其设计旨在实现低延迟和高可扩展性。它的大部分工作都是在应用程序线程运行时进行的,只在短时间内暂停这些线程。ZGC 的暂停时间始终以微秒为单位,因此成为要求低延迟和高可扩展性的工作负载的首选。分代 ZGC 最初将与非分代 ZGC 同时提供。原创 2023-10-16 15:06:25 · 1706 阅读 · 0 评论 -
JDK21新特性之虚拟线程
虚拟线程是一种轻量级线程,可大大减少编写、维护和观察高吞吐量并发应用程序的工作量。并且虚拟线程内的程序在等待IO期间会让出平台线程,这会成指数级的提升非CPU重载型的多线程程序吞吐能力。这真是一个超赞的特性。原创 2023-09-24 00:30:59 · 881 阅读 · 0 评论 -
JDK 21 发布,新特性概览及字符串模板详细介绍
JDK21新特性概览即字符串模板特性详细介绍。这个特性虽然还在预览阶段,还不属于正式发布,但是若能最终进入发布,能够大大减轻了Java编程时复杂字符串的编辑处理工作量。原创 2023-09-19 22:06:10 · 2297 阅读 · 0 评论 -
在Kubernetes上部署Spring Boot应用程序
本指南将引导你完成在Kubernetes上部署Spring Boot应用程序。你可以有许多方法使用Spring Boot和Kubernetes。本指南的目的是让你尽快开展工作,而不是讨论所有的可能替代方案,也不是深入探讨如何进入生产的所有细节。本指南使用 Docker Desktop 运行单节点 Kubernetes,以快速实现在 Kubernetes 上开展工作。使用Spring Boot提供的探针进行有效性探测。原创 2023-04-19 21:00:00 · 789 阅读 · 2 评论 -
解决 Http Maven 私仓的依赖包无法下载,提示被 maven-default-http-blocker 拦截
解决Maven下载依赖提示maven-default-http-blocker 错误原创 2023-03-29 21:45:00 · 3301 阅读 · 0 评论 -
Spring Security 6 配置方法,废弃 WebSecurityConfigurerAdapter
在Spring Security 5.7.0-M2中,Spring就废弃了WebSecurityConfigurerAdapter,因为Spring官方鼓励用户转向基于组件的安全配置。本文整理了一下新的配置方法。在下面的例子中,我们使用Spring Security lambda DSL和HttpSecurity#authorizeHttpRequests方法来定义我们的授权规则,从而遵循最佳实践。原创 2023-03-26 22:00:13 · 20131 阅读 · 21 评论 -
【译】对比Spring Boot内嵌的Tomcat、Undertow和Jetty性能
云原生应用和微服务的不断普及,对嵌入式servlet容器的需求越来越大。Spring Boot允许开发人员使用现有的3个最成熟的容器来轻松构建应用程序或服务。Tomcat、Undertow和Jetty。在本教程中,我们将展示一种方法,使用启动时和一些负载下获得的指标来快速比较容器的实现。2. 依赖性我们对每个可用的容器实现的设置总是要求我们在 pom.xml 中声明对 spring-boot-starter-web 的依赖。翻译 2023-03-21 21:05:58 · 3109 阅读 · 0 评论 -
解决 Java AI编程利器Visual Studio IntelliCode初始化失败
Visual Studio IntelliCode扩展为Visual Studio Code中的Python、TypeScript/JavaScript和Java开发人员提供了AI辅助开发功能,并在理解你的代码上下文的基础上结合机器学习提供编程建议。vscode设置"http.proxySupport": "override"和"http.proxy": "socks5://127.0.0.1:xxxx",解决下载的问题。现在,只需一次点击,你就可以访问超过10万个不同的API的例子。原创 2023-03-17 21:06:41 · 763 阅读 · 0 评论 -
Log4j2配置自动清除指定日期前的日志
关注其中的DefaultRolloverStrategy配置内容,按照此配置会自动清除Delete元素中指定basePath下超出30天的info-*.log.gz配置文件。由于是指定目录,指定文件名格式,指定日期范围,所以是可以清除非工程目录下的文件,所以一定不要配置错了。当按照日期归档日志的时候,由于日志会一直存在,导致磁盘空间占用,如果服务器磁盘空间不足,且日志又没有长期保留的必要,可以直接在log4j2.xml中增加配置实现自动清理历史日志。原创 2023-03-16 09:05:18 · 2880 阅读 · 8 评论 -
【译】Java 17的特点:版本8和17之间的比较,这些年来有什么变化?
新的Java版本每年发布两次,但每一次新的迭代似乎都只是在前一次的基础上有小的改进。虽然这对Java 17来说可能也是如此,但这个版本具有更深的意义,因为Java 8(目前最常用的Java版本)失去了Oracle高级支持。在这篇文章中,我们将探讨最重要的Java 17功能,这两个版本之间的差异,以及它们对Java软件的影响。你应该把你的应用程序从Java 8迁移到17吗?让我们拭目以待。免责声明:这篇文章最初发表于2021年10月22日。原创 2023-03-16 08:45:37 · 6293 阅读 · 0 评论