介绍在本文中,我们会对 Optional 类进行一些说明,并且会解释下如果在使用 Optional 类的时候可能在 Jackson 中进行序列化和反序列化的过程中出现的问题。针对上面的问题,本文会将会介绍在 Jackson 中如何处理 Optional 对象,和如果 Optional 对象可能出现潜在的 Null 的解决方案。问题概览首先让我们来看看如果使用 Jackson 来对 Optional
介绍Jackson-jr 是一个轻量级的Java JSON 处理库。这个库被设计用来替代 Jackson 的复杂性。对比 Jackson 的复杂 API,Jackson-jr 的启动速度更快,包大小更小。虽然Jackson databind(如ObjectMapper)是通用数据绑定的良好选择,但它的占用空间(Jar包大小)和启动开销在某些领域可能存在问题:比如移动端,特别是对于轻量使用(读或写)
关于Jackson-jr 对比 Jackson 的内容,有人在做了一张下面的图。 简单点来说就 Jackson-jr 是Jackson 的轻量级应用,因为我们在很多时候都用不到 Jackson 的很多复杂功能。对很多应用来说,我们可能只需要使用简单的 JSON 读写即可。如我们用不到什么复杂的功能,并且使用了 Jackson-jr 能够满足你的项目使用的话,就直接使用 Jac
Jackson-jr 是一个轻量级的Java JSON 处理库。这个库被设计用来替代 Jackson 的复杂性。对比 Jackson 的复杂 API,Jackson-jr 的启动速度更快,包大小更小。虽然Jackson databind(如ObjectMapper)是通用数据绑定的良好选择,但它的占用空间(Jar包大小)和启动开销在某些领域可能存在问题:比如移动端,特别是对于轻量使用(读或写)。这
在 Gitea 的用户管理部分,有一个 SSH 和 GPG 的选项。 单击这个选项,可以在选项上添加 Key。Key 的来源如是 Windows 的用户,可以选择 Kleopatra 这个软件。通过这个软件生成的 Key 的界面中有一个导出功能。 单击这个导出,就会出现一个新的界面,把这个新界面中的内容复制粘贴到添加 GPG 的 Key 的对
提示的错误信息: INFO] ------------------------------------------------------------------------ [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.10.1:compile (default-compi
作为 IT 搬砖人,一直都认为键盘没有什么太大关系。每次都是公司发什么用什么。 但随着用几年后,发现现在的键盘经常出问题,比如说调节音量的时候通常莫名其妙的卡死,要不就是最大音量要不就是最小音量。按键 M 不知道什么原因巨难按下去,有时候还感觉莫名其妙的卡在哪里。回想这么多年,用的都是 104 键,一直没有来得及用什么比较好的机械键盘,随后发现键盘这东西就应该是生产力工具,不
完整的错误信息为: [ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.3.1:resources (default-resources) on project core-java-io: filtering C:\WorkDir\Repository\iSharkfly-Doc
错误的信息为: [ERROR] Failed to execute goal on project image-processing: Could not resolve dependencies for project com.ossez:image-processing:jar:0.0.2-SNAPSHOT: Failed to collect dependencies at org
提示的具体信息为: [ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.3.1:resources (default-resources) on project core-java-8: filtering C:\WorkDir\Repository\iSharkfly-Docs
概述在本文中,我们将会 对 UUIDs 和基于时间的 UUIDs(time-based UUIDs) 进行一些探讨。当我们在对基于时间的 UUIDs 进行选择的时候,总会遇到一些好的方面和不好的方面,如何进行选择,也是我们将要简要探讨的内容。同时我们还会对可能会使用类库进行一些比较和探索,以便于我们更好的做出选择。UUIDs 和 基于时间的 UUIDsUUID 的全称是 Universally U
概述使用 Base64 编码来对 UUID(Universally Unique Identifiers) 存储在一些特定的场合被广泛的使用。使用 Base64 对比直接使用 UUID 进行存储来说能够更多的节约空间。 本文对这方面的相关内容和问题进行探讨。在这里,使用 Base64 来对 UUID 进行存储,涉及到一些类型的转换的。Base64 是编码算法,在实际使用的时候我们更多会用
getMostSignificantBits() 方法的一些介绍:getMostSignificantBits 这个方法主要用于在 UUID 中获取高64 位的有效位后返回 Long 数据类型。在获取最高有效位时不会引发异常。对应的还有一个 getLeastSignificantBits() 方法。这个方式是从 UUID 中获取低 64 位的有效位返回 Long数据类型。如查看 UUI
UUID 是有多个版本的,如何查看 UUID 是那个版本,可以用 UUID 对象中的 version() 方法。创建 UUID 对象: UID originalUUID = UUID.fromString("cc5f93f7-8cf1-4a51-83c6-e740313a0c6c"); uuid.version();上面方法显示 UUID 的版本为 4。Version 4 (基于随机数)
概述在本文中,我们将会对 Java 特性预览背后的动机进行一些探索,对比当前使用 Java 的版本提供了哪些实验性的功能,以及如何在不同的 IDE 工具中启用这个功能。为什么使用特性预览如你对 Java 版本的发行计划不太熟悉的话,那么需要了解的是 Java 目前是每 6 个月将会发行一个版本。在发行新的版本的时候会提供一些新的特性。Java 特性预览这个功能,将能够让用户提前了解一些 Java
MySQL 的所有数据库用户信息是存储在 user 数据表中的。可以在登录成功数据后运行 SQL: MariaDB [(none)]> select user,host from user;就可以查看到数据中的所有用户信息。 MariaDB [(none)]> select user,host from user; ERROR 1046 (3D000): No da
IntelliJ IDEA 也可以启用 JDK 的预览特性。针对项目,选择项目结构。 配置是在语言结构上。单击语言结构上的 SDK 默认,往下拉,就可以看到针对新版本的选项。 同时还可以看到那些版本是支持新特性预览的,那些版本是不支持新特性预览的。整体来说,IntelliJ IDEA 的新特性预览功能做得要比 Eclipse 更好一些。&nb
在 Eclipse 的 Windows 菜单下选择属性。然后在 Maven 选项下,选择下载包的源代码和文档。 保存应用即可。
针对项目的新特性预览在 Java 的编译器中。单击左侧项目属性中的编译器,然后取消选择使用默认的编译设置。在下面就可以启用针对 Java 21 的新特性预览了。 JDK 针对你计算机中安装的发行版本不同,启用的预览版本也会不同。 https://www.isharkfly.com/t/eclipse/15679
如果你有学生账号,并且账号是 EDU 结尾的,可以申请 IDEA 的学生许可证。有效期一年,完全免费。 在界面上输入邮件地址,然后单击按钮提交。邮件中单击链接JetBrains 会把一个带有链接的邮件发送到你的邮箱中。单击邮箱中的链接,在下一个界面中输入邮箱地址和创建一个账号就可以了。进入新创建的账号,可以在账号页面中看到签发的许可证信息。 直接登录账号
我们有一个 Spring 的客户端,在处理消息的时候因为程序的原因出现消息处理异常。对这种情况,ActiveMQ 会把出现异常的消息放在 DLQ 队列中进行持久化。 因此,在 ActiveMQ 消息处理队列中需要持续关注 DLQ 队列, DLQ 的队列都是无法处理的或者处理的过程中出现了异常。通常,我们可以通过对 DLQ 队列中的消息进行重发了触发处理程序。如上图中后端程序的
因消息传输的需要,我们需要对大量文本的字符串进行一下 Base64 转换。这样的好处是因为在传输的字符串中可能有存在一些特殊字符,这些特殊在经过网络传输的时候会出现编码的问题,并且会影响传输稳定性。使用 Base64 可以避免这个问题。 方法Python 的 Base64 后就可以完全只以为 ASCII 码进行传输了。使用的方法为: base64.b64encode
我们希望我的项目能够在特定的时间自动执行,我们需要设定一个定时任务。Jenkins 的定时任务是通过 Cron 任务来实现的,但是由有点不一样。H/2 * * * * 比如说上面的设置就是每 2 分钟执行一次。 希望每分钟执行一次Jenkins 的每分钟执行一次的设置是: * * * * * 。并不是你想想中的 H/1。 &
在最近安装的 Sonatype Nexus 版本中提供了一个使用参数情况界面。这个使用情况的界面主要是针对当前 Sonatype Nexus 的安装实例出现的系统接入和调用情况。 上面提供了一个限制,这个限制不是说达到了限制后拒绝提供服务了,而是因为在默认的 Sonatype Nexus 安装实力中使用的是嵌入数据库。使用嵌入数据库有数据存储的问题,所以但达到访问量以后,So
群晖(Synology)NAS 是可以启用 SSH 的。如果使用 SSH 命令,我们可以在 NAS 上运行相关的 Linux 命令,比如说在服务器网络传输数据上,就会有明显的优势了。如何启用进入 NAS 的服务器控制台,然后找到终端和 SNMP 然后选择启用 SSH ,然后单击保存即可。 当你单价保存后,就可以通过本地的 SSH 工具 SSH
实在受不了搜狗拼音的无止境弹窗,终于把这个输入法从计算机中卸载了。以前搜狗输入法弹窗还算有所收敛,最近简直是让人无法接受了,本来你还在做屏幕分享给同时做 PPT 的时候,突然来个弹窗,然后整个人都瞬间不好了。更恶心的是,昨天发现搜狗拼音输入法在我的鼠标右键增加了一大堆有关 PDF 的操作,包括 PDF 合并呀这些东西。 首先搜狗输入法占领的是你的打印,当启动他的打印后,就会自
默认的 Nexus 的启动端口为 8081。如果我们使用这个启动端口可能会对我们其他的服务有冲突。我们需要使用 Nexus 的默认启动端口。修改文件根据我们的安装配置为: /opt/nexusdata/nexus3/etc 目录下的 nexus.properties 文件。 注释掉 Jetty 的配置中有关端口的设置,然后对端口进行修改。上图显示的是我们把
在迁移 Nexus 到新的服务器上,我们有下面的异常。 [root@devops log]# /opt/nexus/bin/nexus start No suitable Java Virtual Machine could be found on your system. The version of the JVM must be 1.8. Please define INSTALL
因为服务器的升级和调整,有时候会对安装 Sonatype Nexus 的服务器进行迁移到新服务器上。从技术架构上来说,Sonatype Nexus 我们使用的是 AWS 的存储,所以我们并不需要拷贝大量的数据。文件夹结构在备份和恢复之前,我们需要知道我们要拷贝那些文件夹。Nexus 真正程序运行使用的文件是 2 个,我们把这 2 个文件夹部署在了 /opt 目录下。如下图:在备份迁移的时候,我们需
一般情况下 不建议。vendor 目录(或者你安装依赖的其它目录)都应该被添加进 .gitignore/svn:ignore/等等。最好这么做,然后让所有开发人员使用 Composer 来安装依赖包。同样的,对构建服务器,CI,部署工具等,应在编译构建的时候对项目进行修改修改,使运行 Composer 成为其项目引导的一部分。虽然在某些环境下我们也是可以提交 vendor 目录
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号