Mingfer's Blog

久而久之,不了了之

使用 OpenAPI3 快速生成 REST API 文档

springdoc-openapi 是一个在 Spring Boot 项目中快速生成 API 文档的 Java 库。springdoc-openapi 通过在运行时检查检查程序中的 Spring 配置,类的定义和各种注解来推导 API 的语义。 集成 默认的情况下,我们需要先将 springdoc-openapi 添加到项目依赖列表中: 1 2 3 4 5 <dependency&...

证书签发与 SubjectAltName 扩展项

subjectAltName 的作用 subjectAltName 在 RFC 5280 4.2.1.6. 中提供了详细的说明,subjectAltName 是 X.509 version 3 的一个扩展项,该扩展项用于标记和界定证书持有者的身份。 在 X.509 格式的证书中,一般使用 Issuer 项标记证书的颁发者信息,该项必须是一个非空的 Distinguished Name 名...

Java Thread 之 Daemon Thread

简单来说,Java 中的线程可以分为用户线程和守护(daemon)线程。用户线程就是 main 线程这样的工作线程;守护线程一般用于周期性的执行某个任务或等待某个事件的发生。 守护线程时一种低级别的线程,当 Java 虚拟机中仅剩下守护线程的时候 JVM 会退出。我们可以通过方法 Thread.setDaemon(true) 将线程设置为守护线程,该方法必须在 Thread.start()...

Rinetd:一个用户端口重定向工具

官方网站:Rinetd 概述 Rinetd 是一个 TCP 连接重定向工具,当我们需要进行流量的代理转发的时候,我们可以通过该工具完成。Rinetd 是一个使用异步 IO 的单进程的服务,它可以处理配置在 /etc/rinetd.conf 中的任意数量的连接,但是并不会过多的消耗服务器的资源。Rinetd 不能用于重定向 FTP 服务,因为 FTP 服务使用了多个 socket ...

Java 下常用密码算法的使用

如何使用 BouncyCastle 算法库

本文介绍了 BouncyCastle 库中的 JCE 接口的具体用法。阅读本文之前,我们假设您已经对常用的加密算法,如 RSA,DES/3DES,SM2,SM3,SM4 已经有一定的了解。如果您并不了解这些算法的具体功能,可以先阅读对应的算法规范,这些算法规范可以在 IETF 找到。 BouncyCastle 是一个有着 20 余年历史的开源算法库,它提供了轻量级的支持 Java 的算法接...

如何通过 PL/SQL 调用 Java 方法

前言 当我们加载并发布了使用 Java 实现的存储过程(包括过程和函数)之后,我们可以通过 SQL 语句调用它们。本文将说明如何在各自的上下文中 SQL 如何去调用 Java 实现的存储过程,以及在 SQL 中如何处理 Java 存储过程中产生的异常。 相关文章参见: PL/SQL 初探 Hello World 我们首先通过一个简单的打印 Hello World 字符串的过...

gRPC 服务 Protocol Buffers 语法教程 • 三

Protocol Buffers 复合类型和关键字

前言 本教程用于说明 Protocol Buffers 中一些关键字的作用和用法,其他教程参见: 如何定义一个 Message Protocol Buffers 的字段类型 正文 Oneof 当我们的 Message 中包含多个字段但是只允许其中一个字段生效的时候可以使用 oneof 关键字,这样在编码得到时候会节省一部分内存。 oneof 内声明字段和常规声明字段得...

gRPC 服务 Protocol Buffers 语法教程 • 二

Protocol Buffers 的字段类型

Protocol Buffers 作为一种独立的编程语言,它有着自己的数据类型。 前言 本文主要说明 Protocol Buffers 的数据类型,其他教程参见: 如何定义一个 Message Protocol Buffers 复合类型和关键字 正文 原生数据类型 一个原生的 Protocol Buffers 字段可能包含下表的数据类型之一。下表主要是 Pr...

PL/SQL 初探

Hello PL/SQL

PL/SQL 是一种功能强大而且简单易用的数据库编程语言。它易于编写和阅读,并且包含许多开箱即用的特性和安全功能。 PL/SQL 是什么? 在我们应用程序的技术架构中,我们总能找到数据库的存在,从而使得我们的应用程序能够存储和操作大量的数据。而操纵其中关系型数据库内容的 SQL 语言是一种非常强大的面向集合的语言。在我们使用关系型数据库构建的应用程序中,我们必须依靠执行 SQL ...

gRPC 服务 Protocol Buffers 语法教程 • 一

如何定义一个 Message

默认情况下,gRPC 使用 Protocol Buffers 服务定义语言(IDL)来描述服务接口和请求响应消息的结构。 前言 Google 在其开发者网站提供了关于 Protocol Buffers 的详细介绍,当然由于国内的原因我们往往无法访问。下面是根据官方文档整理的 proto3 版本的 Protocol Buffers 使用指南。本指南主要介绍如何通过 Protocol...