使用 Spring Boot 实现 Excel 导出 + 邮件异步发送功能,解决接口阻塞问题 一、背景介绍最近我在开发一个跑团管理系统的数据导出功能,需求是将用户查询的成员信息、跑量统计等数据导出为 Excel 文件,并通过邮件自动发送至指定邮箱,而非让用户手动下载文件。虽然功能逻辑看起来不复杂,但 ...
正文 今天怒花 300 多块。 买了些护肤品。买了防晒和面霜。前两天做了蛮久的功课,决定挑哪一大类的产品,今天就是在这个大类的产品里面挑比较安全、适合自己皮肤、便宜价位、产品间协同效果、成分安全的产品了。 感觉都挺花时间…… 买防晒的时候有一个比较有意思的事情,美丽修行上有一个跟自己皮肤匹配很好、很 ...
前言 大家好,我是小徐啊。我们在开发Java应用的时候,经常是需要和PDF文档打交道的。 这极大地帮助我们提高了开发效率。 今天,小徐要来聊一聊,如何利用工具,将pdf文档压缩大小,方便我们上传,最重要的是,这是完全免费的。一起来看下吧! 如何压缩pdf文件大小,完全免费? 首先,我们打开微信,在搜 ...
一、背景与需求 在云存储场景中,数据安全是核心需求之一。MinIO作为高性能对象存储服务,支持通过客户端加密(CSE)在数据上传前完成加密,确保即使存储服务器被攻破,攻击者也无法获取明文数据。本文将详解如何通过Java实现MinIO文件的加密上传与解密下载,结合AES对称加密算法和BouncyCas ...
pthread_create函数 此函数可以创建一个线程 int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine)(void *), void *arg); //thread:该参 ...
大家好,我是R哥。 前几天 Redis 官方发布了一个重磅消息:Redis 8.0 正式发布!这次发布,不仅是版本号的迭代,更是一次态度上的回归——它宣布重新开源了! 你是不是好奇,Redis 本来不就是开源的吗? 不,从 Redis 7.4 开始,它就悄悄把核心协议换了: 没错,Redis 7.4 ...
如何拷贝容器内的数据 类似 Linux 的“cp”、“scp”,指定源路径(src path)和目标路径(dest path) # 将 a.txt 拷贝到容器的 /tmp 目录 docker cp a.txt 964:/tmp # 从容器拷贝出文件 docker cp 964:/tmp/a.txt ...
一、概述 在Spring Boot中,拦截器是一种用于拦截和处理HTTP请求的机制。它是Spring框架提供的一种中间件,用于在请求到达控制器(Controller)之前或之后执行一些共享的逻辑。 Spring Boot的拦截器基于Spring MVC框架中的HandlerInterceptor接口 ...
一、概述 1.1 含义 过滤器是Web三大组件之一,也是项目中常用的工具。过滤器由Servlet提供,基于函数回调实现链式对网络请求和响应的拦截与修改。由于基于Servlet,几乎可以拦截Web服务器管理的所有资源(JSP、图片文件、HTML文件、CSS文件等)。 定义过滤器需要实现javax.se ...
大家好,我是大任,今天给大家分享一下Elasticsearch的向量搜索技术 注:本文若未说明ES版本则为7.10,其他版本会特别标记,由于ES版本不同,部分差异较大,具体请以官方文档为准 一、向量搜索的核心原理 1.1 向量化表示的本质 现代AI技术将文本、图像等非结构化数据转化为高维向量(通常1 ...
设计程序,进程A专门创建一个信号量集,要求信号量集中有1个信号量,对信号量集合中的信号量进行设置,要求集合中的信号量的初值为1,然后再设计2个程序,分别是进程B和进程C,要求进程B和进程C使用进程A创建的信号量集合中的信号量实现互斥访问。进程B对变量进行+1操作,写入共享内存,进程C读取共享内存的数 ...
大家好,我是R哥。 最近看到一个很有意思的话题: 看完真让我哭笑不得。。 这件事可不是段子,而是真实的行业写照,虽然说不是每家公司都这么干,但这种现象在国内也并不少见。 有能力、有追求的技术人想做点事,碰到的不是技术挑战,而是职场人性难题。 说到底,这位架构师的问题不是技术不行,而是太理想主义。他以 ...
设计两个进程,进程A申请一块共享内存,并向内存中写入数据,进程B从共享内存中读取数据并输出 /******************************************************************************** * * * 共享内存练习 * author: ...
进程A创建一条消息队列之后向进程B发送SIGUSR1信号,进程B收到该信号之后打开消息队列并把进程的PID作为消息写入到消息队列中,进程B在写入消息之后,发SIGUSR2信号给进程A,进程A收到该信号则从消息队列中读取消息并输出。 /********************************* ...
正文 我收回前面的话,我果然还是肥得要命啊啊啊。 爷爷去世的这几天,忙里忙外,也没怎么锻炼。昨天早上下葬,下午回到银行自己的窝里。洗澡的时候,发现自己的下腹腰围突出好大一截。感觉比以前都要大。我当时好慌啊。不会年度计划没完成,反而腰围还大一圈吧…… 那种事情不要啊啊啊。 下午回到小窝,就做了一下家务 ...
在软件开发过程中,软件测试对于保障软件质量和用户满意度起着关键作用。为最大程度上提升软件品质,我们积极开展全链路测试实践,打造了用Rust语言开发的自研一站式抓包代理工具FunProxy,基于其跨平台、高性能、易于扩展、安全性高等特性,让全链路抓包和环境代理如丝绸般丝滑。 ...
前言 大家好,我是小徐啊。Excel是我们在Java开发的时候,常用到的软件,非常方便,能帮助我们快速开发应用。 然后,有时候,我们需要在Excel里面进行数据的插入,比如插入几行或者几列。 今天,小徐就来介绍在如何在Excel里面插入指定数量的行或者指定数量的列。 Excel如何插入指定数量的行或 ...
CMDB —— 一个简洁、轻量且高度可定制的运维配置管理数据库(CMDB),支持灵活的模型配置和资源自动发现,旨在帮助企业运维团队高效地管理 IT 基础设施和服务。 ...
共享内存 共享内存是物理内存中的一段内存空间,而物理内存是由内核进行维护的,所以进程必须向操作系统申请一块物理内存。 shmget函数 使用此函数可以向内核申请物理内存 int shmget(key_t key,size_t size,int shmflg) //key:IPC对象使用的键值,fto ...
title: 数据库连接池:从银行柜台到代码世界的奇妙旅程 date: 2025/05/08 01:52:52 updated: 2025/05/08 01:52:52 author: cmdragon excerpt: FastAPI开发中,Tortoise-ORM的数据库连接池配置对系统性能至关 ...