1. 简介 ActiveJhttps://activej.io/ 是一个轻量级的 Java 框架,适用于高性能应用。我们可以用它来创建启动速度快、内存占用小的极简和模块化应用。它提供了异步 I/O、依赖注入、高效序列化和响应式编程支持等特性。 在本教程中,我们将讨论 ActiveJ 的主要特性,包括其 Inspect 模块、强大的事件循环和高级网络功能。 2. 注入 我们从 ActiveJ...
阅读全文Lombok作为一个广受欢迎的Java开发工具,通过注解的方式帮助我们消除样板代码,提升开发效率。但随着项目的发展,它也带来了一些令人困扰的问题: 🧙♂️ Lombok的问题 代码可读性差 - 大量使用@Data、@Builder等注解后,实际生成的代码变得不可见,增加了代码审查和维护的难度 IDE支持不稳定 - 与IDE的集成经常出现问题,导致代码提示失效、编辑器卡顿等问题...
阅读全文1. @Formula注解是什么? 1.1 动态计算字段值 Hibernate中的@Formula注解允许您在实体中映射计算字段。不同于直接将数据库列映射到Java字段,@Formula可定义SQL表达式用于字段值的动态计算。该特性特别适用于依赖其他列或表数据的只读字段。 例如,在Employee实体中需要根据firstname和lastname列生成全名,使用@Formula即可实现无需数据库存...
阅读全文如果你曾经在Java企业级代码库中工作过,你很可能遇到过一个Controller或Service做了太多事情 — 业务逻辑、日志记录、验证、认证、指标统计、重试等。所有这些都在一个方法中。 结果如何?代码难以阅读,更难测试,几乎不可能干净地扩展。 所以,我要做出一个大胆的声明: 在企业级应用中,如果没有面向切面编程(AOP),编写干净、可维护的Java代码是不可能的。...
阅读全文深入研究微服务世界的 Java 开发人员经常发现自己面临着在两个著名框架之间做出选择:Micronaut 和 Spring Boot。 这两个框架都为构建微服务提供了强大的解决方案,但每个框架都有自己的优点和缺点。 在本文中,我们将探讨与 Spring Boot 相比使用 Micronaut 的一些潜在缺点,强调根据项目的特定需求调整您的选择的重要性。 生态系统的成熟度与规模 Spring...
阅读全文在日常写Java的时候,对于字符串的操作是非常普遍的,其中最常见的就是对字符串的组织。也因为这个操作非常普遍,所以诞生了很多方案,总下来大概有这么几种: - 使用+拼接 - 使用StringBuffer和SpringBuilder - String::format and String::formatted - 使用java.text.MessageFormat 下面,我们一起来学习一下Java...
阅读全文在Java中,组织字符串是平时最常见的操作,这里总结一下Java自带的四种处理方式。 1. 使用+拼接 案例: java String name = "DD"; String host = "blog.didispace.com"; String result = "hello " + name + ", your blog is " + host;...
阅读全文在Java 9中又新增了一些API来帮助便捷的创建不可变集合,以减少代码复杂度。 本期配套视频:Java 9 新特性:快速定义不可变集合https://www.bilibili.com/video/BV1HY411F744/ 常规写法 以往我们创建一些不可变集合的时候,通常是这样写的: java // 不可变的Set Set set = new HashSet<>; set.add"a";...
阅读全文什么是交互式编程环境?重点词交互,在这样的编程环境中,你每输入一行代码,环境都会给你一个反馈,这就是交互式的编程环境。这种编程环境并不太适合工程化的复杂性需求,但在一些快速验证、简单计算之类的场景下还是非常好用的。其实交互式编程环境在其他高级语言中很早就有了,而Java直到Java 9才正式推出了这样的工具。 下面就来一起学习下,这个Java中的交互式编程环境JShell。 JShell快速入门...
阅读全文以前我们定义类都是用class关键词,但从Java 16开始,我们将多一个关键词record,它也可以用来定义类。record关键词的引入,主要是为了提供一种更为简洁、紧凑的final类的定义方式。 下面就来具体了解record类的细节。 声明record类 声明record类的基础语法: java record rangeint start, int end{}...
阅读全文