编辑
2024-05-21
学习记录
00

说明

根据业务要求需要将多个pdf合并成一个大的pdf,并且合并后的pdf还需要根据每个小pdf的标题生成目录。 本来使用的是iTextpdf5版本,这个版本不支持书签,所以引入新的依赖,使用pdfbox依赖写一个工具类合并pdf。

依赖

xml
<dependency> <groupId>org.apache.pdfbox</groupId> <artifactId>pdfbox</artifactId> <version>2.0.30</version> </dependency>
编辑
2024-05-07
学习记录
00

什么是 MQTT?

MQTT 是一种基于发布/订阅模式的轻量级消息协议。它专为受限网络环境和低带宽、高延迟或不可靠的网络而设计。其主要特点包括:

轻量与高效:协议开销小,非常适合物联网(IoT)、移动应用等场景。

发布/订阅模式:消息的发送者(发布者)和接收者(订阅者)通过 Topic(主题)解耦,不需要知道彼此的存在。

多级 QoS:支持最多一次(0)、至少一次(1)、刚好一次(2)三种消息服务质量等级,可按需保证消息的可靠传输。

双向通信:设备可通过 MQTT 上传数据(如传感器读数),服务端也可反向发布指令(如控制开关)。

核心组件与架构

在集成之前,你需要了解以下几个核心概念:

  • MQTT 代理 (Broker):消息的中枢服务器,负责接收所有客户端的消息,并根据主题将其推送给订阅的客户端。常见的有 EMQX、HiveMQ、Mosquitto 等。
  • MQTT 客户端 (Client):你的 Java/Spring Boot 应用,它可以充当发布者、订阅者或两者皆是。
  • 主题 (Topic):消息的“地址”,例如 device/sensor/temperature,客户端通过指定主题来收发消息。
  • QoS (服务质量):定义了消息传递的可靠性级别。
编辑
2024-05-07
学习记录
00

核心概念

两者都用于定义在 Bean 的所有必要属性(通过依赖注入设置)被设置之后,需要执行的初始化逻辑。例如,在数据库连接池 Bean 被创建且其 dataSource、maxPoolSize 等属性被注入后,你可能需要用它来预先建立几个连接进行预热。

编辑
2024-05-07
学习记录
00

什么是 SSE?

SSE 是一种允许服务器通过 HTTP 协议主动向客户端推送事件的技术。它特别适合那些实时性要求高、但不需要客户端频繁发送数据的场景,比如实时消息通知、进度更新、数据流推送等。

编辑
2024-05-07
前端
00

介绍

Umi,中文发音为「乌米」,是可扩展的企业级前端应用框架。Umi 以路由为基础,同时支持配置式路由和约定式路由,保证路由的功能完备,并以此进行功能扩展。然后配以生命周期完善的插件体系,覆盖从源码到构建产物的每个生命周期,支持各种功能扩展和业务需求。

Umi 是蚂蚁集团的底层前端框架,已直接或间接地服务了 10000+ 应用,包括 Java、Node、H5 无线、离线(Hybrid)应用、纯前端 assets 应用、CMS 应用、Electron 应用、Serverless 应用等。他已经很好地服务了我们的内部用户,同时也服务了不少外部用户,包括淘系、飞猪、阿里云、字节、腾讯、口碑、美团等。在 2021 年字节的调研报告中,Umi 是其中 25.33% 开发者的选择。 官网

特点

  1. 企业级,在安全性、稳定性、最佳实践、约束能力方面会考虑更多
  2. 插件化,啥都能改,Umi 本身也是由插件构成
  3. MFSU,比 Vite 还快的 Webpack 打包方案
  4. 基于 React Router 6 的完备路由
  5. 默认最快的请求
  6. SSR & SSG
  7. 稳定白盒性能好的 ESLint 和 Jest
  8. React 18 的框架级接入
  9. Monorepo 最佳实践