ActiveJ:轻量级 Java Web 框架
ActiveJ 是一个用于高性能应用的轻量级 Java 框架。我们可以使用它来创建具有快速启动和小内存占用的极简和模块化应用。它提供异步 I/O、依赖注入、高效序列化和响应式编程支持等特性...
在 Spring Boot 中使用 SendGrid 发送邮件
本文中,我们将探索如何在 Spring Boot 应用中使用 SendGrid 发送电子邮件。我们将将介绍必要的配置,并通过不同的用例实现电子邮件发送功能...
Java SootUp 静态分析框架简介
本文将介绍 SootUp 库。SootUp 是一个用于对 JVM 代码进行静态分析的库,可以使用原始源代码或编译后的 JVM 字节码。它是对 Soot 库的全面改造,旨在使其更加模块化、更易于测试、更易于维护、更易于使用。2. 依赖在使用 SootUp 之前,我们需要在我们的构建中引入最新版本,在撰写本文时为 1.3.0。<dependenc...
Java: 使用 Selenium 自动进行浏览器测试
现在大部分企业都依赖于网站和 web 应用,许多组织都在线上运营。由于与最终用户和客户连接,网站及 web 应用必须在所有流行的浏览器、浏览器版本后操作系统中完美运行。虽说手动测试也可以完成既定测试目的,不过自动化测试在测试速度和效率方面是更好的选择。Selenium 等自动化测试工具允许企业运行自动化浏览器测试,使他们能够更快地交付高质量的网站和...
Java 中将方法作为参数传递
在 Java 中,我们可以使用函数式编程概念,特别是使用 lambda 表达式、方法引用和函数接口,将一个方法作为参数传递给另一个方法。本文中中,我们将探索几种将方法作为参数传递的方法 ...
Spring Security 的双因素认证
在本教程中,我们将使用软令牌和 Spring Security 实现双因素身份验证功能。我们将把新功能添加到现有的简单登录流程中,并使用 Google Authenticator 应用程序生成令牌。简单地说,双因素身份验证是一个验证过程,遵循众所周知的“用户知道的东西和用户拥有的东西”的原则。因此,用户在身份验证过程中提供了一个额外的“验证令牌”...
JVM、JRE 和 JDK 之间的区别
本文中,我们将通过 JVM、JRE 和 JDK 的组件和用途来讨论它们之间的差异。 Java Virtual Machine (JVM) 是执行 Java 程序的虚拟机的实现。JVM 首先解析字节码。然后,它将类信息存储在存储区中。最后,它执行 java 编译器生成的字节码。它是一台具有自己的指令集的抽象计算机,在运行时操纵各种内存区域。...
Java 基础 - Java 中的控制结构
从最基本的意义上讲,程序是一系列指令。控制结构是编程块,可以改变我们通过这些指令的路径。本文中,我们将探索 Java 中的控制结构。它有三种控制结构:条件分支,用于在两条或多条路径之间进行选择。Java 中有三种类型:if/else/else if、三元运算符和 switch。用于迭代多个值/对象并重复运行特定代码块的循环。Java 中...
Java 基础 - Java main() 方法解析
每个程序都需要一个开始执行的地方;说到 Java 程序,这就是 main 方法。我们习惯于在代码会话中编写 main 方法,以至于我们甚至不注意它的细节。在这篇短文中,我们将分析这种方法,并展示一些其他的编码方法。最常见的 main 方法模板是:public static void main(String[] args) { }这就是...
Spring 与 Spring Boot 之比较
本教程中,我们将研究标准 Spring 框架和 Spring Boot 之间的差异。我们将重点讨论 Spring 的模块,如 MVC 和 Security,在核心 Spring中使用时与在 Boot 中使用时有何不同。Spring 框架为开发 Java 应用提供了全面的基础设施支持。它包含了一些...