Java 中的 Semaphore
本文中,我们将探讨 Java 中信号量(semphore)和 mutex 的基础。我们将从 java.util.concurrent.Semaphore 开始。我们可以使用信号量(semaphore)来限制访问特定资源的并发线程的数量。在以下示例中,我们将实现一个简单的登录队列来限制系统中的用户数量:class LoginQu...
model:show 查看模型中的第三方关联:Laravel 11.11 中的新功能
Laravel 团队发布了 v11.11,支持使用 model:show 命令显示第三方关联,新增 Collection 方法,新的缓存事件等等。before 及 after Collection 方法Ryuta Hamasaki 方法贡献 before 和 after 方法到 Collection 和 LazyCollection 实例以下是 before...
鲜为人知但有用的 Composer 命令
Composer 是 PHP 的依赖管理器,如果你使用 Laravel,你应该已经熟悉了常用的命令,如 composer install 和 composer update。除此之外,Composer 还提供了一些鲜为人知但在使用 Laravel 很有用的命令。下面是 5 个你可能不知道但有用的 Composer 命令1. composer outdated...
[Laravel 扩展包] Laravel Auditing: 一款强大的模型审计工具
概述Laravel Auditing 包是 Laravel 开发人员的一个强大工具,它用来确保应用中的数据安全且平稳运行。它为 Eloquent 模型提供了详细的审计功能,使开发人员能够跟踪模型中发生的每一个更改,包括记录的创建、修改和删除,以及对其属性的任何更改。该软件包具有许多有用的功能,可以轻松地自定义和控制审核过程。例如,它包含了一个允许开发人员审核...
Hibernate Envers – 入门导引
许多业务应用都需要一个审计日志来记录对托管数据执行的所有更改。有很多不同的选项可以实现这样的日志。其中之一是 Hibernate Envers。只需要一些注释就可以记录审核表中的所有更改,Envers 还提供了一个强大的 API 来从审核日志中提取信息。本文将向展示如何将 Hibernate Envers 添加到项目中,激活实体的审核,并从日志中检索不同的信...
如何使用 Hibernate 实现软删除
某些应用中,你不希望或不允许从数据库中永久删除记录。但仍然需要删除或隐藏不再活动的记录。一个例子可能是想要保留的用户帐户,因为它链接到仍在使用的其他业务对象。你有两个基本选项可以将这些信息保存在系统中。你可以保留记录所有更改的审核日志,也可以执行隐藏已删除记录的软删除。我在关于Hibernate Envers 的文章中解释了审计日志选项。今天,我想展示如何使...
Lombok & Hibernate: 如何避免常见的陷阱
Lombok 是 Java 开发人员中流行的框架,因为它生成重复的样板代码,如 getter 和 setter 方法、equals 和 hashCode 方法以及默认构造函数。你所需要做的就是向类中添加一些注释,Lombok 将在编译时添加所需的代码。这对于普通类来说效果相当好,但如果将其用于 Hibernate 实体,则会引入一些危险的陷阱。为了避免这些陷...
Lombok 项目介绍
Java 是一种很棒的语言,但对于我们在代码中必须执行的常见任务或遵守某些框架实践来说,它有时会变得过于冗长。这通常不会给我们项目的商业方面带来任何真正的价值,而这正是 Lombok 让我们更有效率的地方。它的工作方式是嵌入到我们的编译过程,并根据我们在代码中引入的诸多项目注释,将 Java 字节码自动生成到 .class 文件中。将它引入...
TIOBE 编程语言排名: 2024 年 6 月
6 月头条:C++ 排名历史上首次超过 C。C++ 是 TIOBE 指数排名中的第二名。最初,它被称为更好的面向对象的 C 版本,在 C++ 诞生后花了 39 年的时间才击败了 C。C++ 在 TIOBE 指数中从未如此之高,而 C 从未如此之低。从 2011年起,C++ 开始了新的生命,它持续3年更新一次。尽管大多数编译器和大多数工程师都无法跟上这一步伐,但...
Git Squash 用法
在开发一个功能的时候会反复的提交代码,会造成一个功能有很多次提交,在我们要向 mian 做分支合并的时候,就会出现很多 commits,在合并以后同一个功能的 commits 就会很多,导致我们无法清晰的知道这个功能关联的 commit 有哪些,这个 squash 就是优化我们的 commits 信息,让我们的版本仓库看起来简洁明了,功能点一目了...