最近有一个需求,系统要根据启动参数加载不同权限的数据源,代码就位之后,开启了自测。 刚开始测的是默认场景下数据源加载情况,这个时候一切正常。 后来开始测试特定场景下的case,这个时候出现问题了,发现数据源并没有按照我想要的情况加载。第一时间就想到了是不是启动参数读取的问题。 排查了下发现还真是启动参数读取有问题,没有 […]
最近有一个需求,系统要根据启动参数加载不同权限的数据源,代码就位之后,开启了自测。 刚开始测的是默认场景下数据源加载情况,这个时候一切正常。 后来开始测试特定场景下的case,这个时候出现问题了,发现数据源并没有按照我想要的情况加载。第一时间就想到了是不是启动参数读取的问题。 排查了下发现还真是启动参数读取有问题,没有 […]
在JVM(Java虚拟机)参数中,-D 是一个非常重要的选项,用于在启动Java程序时设置系统属性(System Properties)。这些属性可以在程序中通过 System.getProperty() 方法访问,主要用于动态配置应用行为、传递环境变量或自定义参数。 一、核心作用 -D 的作用是在JVM启动时设置系统 […]
一、核心区别 维度 spring.factories AutoConfiguration.imports 文件路径 META-INF/spring.factories META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imp […]
Spring Boot 提供了大量注解用于简化配置和开发,以下是核心常用注解分类及实战用法: 一、Bean 相关注解 1. @Component 作用:标识普通组件,被 Spring 容器自动扫描注册为 Bean。 场景:通用层(工具类、非 MVC 组件)。 @Component public class MyUtil […]
一、前言 在现代应用开发中,多线程与异步编程是提升系统性能的常用手段。例如,用户抽奖后异步发送push通知,或并行处理互不依赖的业务逻辑(将顺序执行的耗时 A+B+C 优化为并行的 Max(A,B,C))。此时,CompletableFuture 因简洁的API和强大的组合能力成为许多开发者的首选。然而,看似便捷的背后 […]
接口防刷是保障系统安全与稳定性的重要措施。恶意的高频请求不仅会消耗服务器资源,还可能导致数据异常,甚至系统瘫痪。本文将介绍在SpringBoot框架下实现接口防刷的5种技术方案。 1. 基于注解的访问频率限制 最常见的防刷方案是通过自定义注解和AOP切面实现访问频率限制。这种方法简单易用,实现成本低。 实现步骤 1.1 […]
SpringBoot以其强大的自动配置和丰富的生态系统成为Java开发的首选框架。除了核心功能外,SpringBoot及其依赖的Spring框架还包含大量实用工具类,它们可以显著简化日常开发工作。本文将介绍49个常用工具类,并通过简洁的代码示例展示它们的基本用法。 字符串处理工具类 1. StringUtils imp […]
一、背景 在网络传输敏感数据时,接口加密是保障安全的核心手段。下面就说一说如何在 SpringBoot 中实现 RSA+AES 混合加密方案,同时结合两种算法的优势,确保数据传输的安全性与高效性。 二、加密方案优势 算法 特点 适用场景 RSA 非对称加密,安全性高,但加密速度慢,适合加密少量数据(如密钥)。 加密 A […]
前言 参数校验是保证程序健壮性的重要环节,前端校验为用户体验,后端校验为系统安全。Spring Boot 中常用 @Valid 和 @Validated 实现参数校验,本文将详细解析两者的区别、用法及代码示例。 一、@Valid 注解 1. 功能与依赖 标准规范:属于 Java EE 标准注解(JSR 303 规范), […]
AbstractRoutingDataSource 是 Spring 框架中的一个抽象类,它位于 org.springframework.jdbc.datasource.lookup 包下,主要用于实现动态数据源的切换。以下将从其作用、原理、使用步骤和示例代码等方面进行详细介绍。 介绍 作用 在一些复杂的业务场景中,可 […]
1. 环境准备 开发环境:确保已经安装了Java开发环境(JDK 8及以上)、Maven和Spring Boot CLI。 AI服务:注册OpenAI账号,获取API密钥,用于调用AI服务生成图片。 FFmpeg:安装FFmpeg工具,用于将生成的图片合成为视频。 2. 创建Spring Boot项目 使用Spring […]
在 Spring Boot 应用中实现优雅关闭可以确保应用在停止时能够妥善处理正在进行的任务、释放资源,避免数据丢失和系统异常。以下是几种实现 Spring Boot 应用优雅关闭的方法: 1. 使用 Spring Boot Actuator Spring Boot Actuator 提供了一个 /shutdown 端 […]
原因 SpringCloud Gateway无法找到TandeMacBook-Pro.local对应的IP地址, DNS解析失败.导致启动耗时. 解决方案 查看本机hostname,命令如下: root@TandeMacBook-Pro ~ % hostname TandeMacBook-Pro.local 修改hos […]
本地部署 DeepSeek 模型 1. 环境准备 硬件:确保你的机器有足够的内存和计算资源,因为模型运行需要一定的硬件支持。 软件:安装 Python 3.7 及以上版本,以及相关依赖库,如 PyTorch 等。 2. 下载和部署模型 你可以从官方渠道下载 DeepSeek Coder 模型的权重文件,然后使用开源的推 […]
一、介绍 在前面的文章中,我们详细的介绍了 MongoDB 的配置和使用,如果你对 MongoDB 还不是很了解,也没关系,在 MongoDB 中有三个比较重要的名词:数据库、集合、文档! 数据库(Database):和关系型数据库一样,每个数据库中有自己的用户权限,不同的项目组可以使用不同的数据库 集合(Collec […]
黄沙百战穿金甲,不破楼兰终不还。