- 博客(115)
- 收藏
- 关注
原创 高频使用的MySQL技巧
- 创建用户偏好表(JSON字段存储动态配置)idINT PRIMARY KEYCOMMENT'主键ID',user_id INTCOMMENT'用户ID',preferences JSONCOMMENT'用户偏好设置(JSON格式)') COMMENT'用户偏好表';-- 插入测试数据-- 查询指定用户的主题配置(->符号提取JSON值)-- 结果:"dark"
2025-11-04 09:43:21
543
原创 策略模式 vs 适配器模式
2.2支付宝适配器2.2.1原生接口public class AlipayService { public AlipayResponse createPayment(AlipayRequest request) { // 支付宝原生逻辑 }
2025-08-21 09:46:51
550
原创 SpringBoot集成MyBatis的SQL拦截器
1、mybatis慢查询监控拦截器2、数据脱敏拦截器(敏感信息保护)3、mybatis通用字段自动填充4、mybatis拦截器备份delete删除数据
2025-08-12 17:31:16
454
原创 mybatis-plus-join-boot-starter依赖解决 Join 联表查询
Mybatis Plus 封装的 mapper 不支持 join,如果需要支持就必须自己去实现。但是对于大部分的业务场景来说,都需要多表 join,要不然就没必要采用关系型数据库了。那么有没有一种不通过硬 SQL 的形式,通过框架提供 join 能力呢?答案是,可以有。
2025-05-08 14:11:16
1306
原创 TransactionTemplate 与@Transactional 注解的使用
和是Spring框架中实现事务管理的两种主要方式,各有其特点和适用场景。
2025-04-28 10:07:48
2061
原创 SpringBoot动态设置定时任务
在SpringBoot项目中简单使用定时任务,不过由于要借助cron表达式且都提前定义好放在配置文件里,不能在项目运行中动态修改任务执行时间,实在不太灵活。除了上面的借助cron表达式的方法,还有另一种触发器,区别于CronTrigger触发器,该触发器可随意设置循环间隔时间,不像cron表达式只能定义小于等于间隔59秒。访问接口,传入请求参数cron表达式,将定时任务修改为15秒执行一次。编写一个接口,使得可以通过调用接口动态修改该定时任务的执行时间。启动项目,可以看到任务每10秒执行一次。
2025-04-16 14:52:54
556
原创 SpringBoot动态配置数据源的几种实现方式
AbstractRoutingDataSource 的核心原理是通过一个线程本地变量(ThreadLocal)来保存当前使用的数据源标识,然后在每次获取连接时,根据这个标识来决定使用哪个数据源。利用ThreadLocal管理当前使用的数据源,DynamicDataSourceContextHolder可以在不同的线程间隔离数据源的使用,实现数据源的动态切换。它用于确定当前使用的数据源标识。根据返回的标识,AbstractRoutingDataSource 会从预先配置的数据源中选择对应的数据源。
2025-03-27 15:38:29
917
原创 【Java开发】Springboot集成mybatis-plus
-mysql依赖-->目前,多数项目会有多数据源的要求,或者是主从部署的要求,所以我们还需要引入 mybatis-plus 关于多数据源的依赖-- mybatis-plus 多数据源 -->
2024-12-05 10:03:14
1513
原创 springboot整合flowable工作流
1、Start Events(开始事件)Start Event: 流程的起点,手动触发。(重要)Start Conditional Event: 条件满足时自动触发。Start Message Event: 接收到特定消息时自动触发。Start Error Event: 发生指定错误时自动触发。Start Escalation Event: 需要升级或转交给更高级别人员时自动触发。Start Signal Event: 接收到特定信号时自动触发。
2024-12-02 10:30:33
1665
原创 Git常用命令总结
1、git fetch 取回所有更新分支信息2、git branch -a 查看所有分支信息3、git branch 查看当前分支信息4、git checkout “分支名” 切换分支5、git init 初始化git仓库6、git clone “ 克隆地址 ” 拉取项目7、git pull 拉取代码8、git status 查看修改的文件git status -s / git status --short 查看更加简洁的状态信息。
2024-11-13 09:45:14
2115
原创 Windows部署MinIO,搭建本地对象存储服务
基于外网的项目,可以使用阿里云等提供的OSS对象存储服务;但基于内网的项目,就只能部署本地的文件存储服务,这里推荐一下MinIO;MinIO是一个高性能、高可靠、可扩展、开源、分布式对象存储解决方案;1、它提供了与Amazon Web Services S3兼容的API,并支持所有核心S3功能;2、对于开发人员友好,部署简单,接口文档完善,支持主流开发语言;3、非常适合存储大量非结构化数据,例如图片、文件、视频、音频等等;
2024-08-02 16:45:06
2260
2
原创 el-table实现固定列,及解决固定列导致部分滚动条无法拖动的问题
当数据量动态变化时,可以为 Table 设置一个最大高度。通过设置max-height属性为 Table 指定最大高度。此时若表格所需的高度大于最大高度,则会显示一个滚动条。fixed属性:列是否固定在左侧或者右侧,true 表示固定在左侧;可选值:true, left, right。
2024-07-05 10:49:33
3050
1
原创 解决 vue 项目开发越久 node_modules包越大的问题
有一个vue项目,发现它的占用空间越来越大,一看是node_modules占用已经100多G了,然后测试了每次编译运行就会增大几百兆,日积月累,磁盘都快装满了。但是并不想删除node_modules重装,后来找到了是CompressionWebpackPlugin插件开启了GZIP压缩,缓存越来越大的问题,在vue.config.js相关配置中增加一条cache:false即可解决。
2024-06-27 13:50:46
1685
原创 SpringBoot整合MQTT实现消息的发布与订阅
MqttMQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的“轻量级”通讯协议,该协议构建于 TCP/IP 协议上,由 IBM 于 1999 年发明。网络受限:网络带宽较低且传输不可靠终端受限:协议运行在嵌入式设备上,嵌入式终端的处理器、内存等是受限的。
2024-06-18 11:17:54
3164
原创 Docker-compose安装、使用,容器化部署springboot项目
1)下载docker-compose若速度较慢,可以使用如下命令:2)修改目录权限(添加可执行权限)3)创建软连接4)验证安装是否完成。
2024-06-06 15:33:36
1845
1
原创 Docker安装、使用,容器化部署springboot项目
安装命令如下:也可以使用国内 daocloud 一键安装命令:可以先下载到本地,然后通过ftp工具上传到服务器上,或者在服务器上使用命令下载将解压出来的docker文件复制到 /usr/bin/ 目录下 进入 目录,并创建 文件,内容如下,这样可以将docker注册为service服务4. 启动docker三、docker常用命令1. docker常用命令 docker --help #查看docker命令 docker info #do
2024-06-06 15:09:28
2672
1
原创 Jenkins构建打包部署前端Vue项目至Nginx
配置node.js1、创建项目2、配置gitee3、配置源码4、构建环境/bin/bashnpm -v。
2024-06-04 15:20:38
745
2
原创 基于Docker+Jenkins实现自动部署SpringBoot+Maven项目
随便根据其他教程安装即可,本文着重讲jenkins的安装与环境配置。
2024-06-03 16:08:03
1657
1
原创 时序数据库ClickHouse的安装使用
ClickHouse是俄罗斯的Yandex于2016年开源的列式存储数据库(DBMS),使用C++语言编写,主要用于在线分析处理查询(OLAP),能够使用SQL查询实时生成分析数据报告。OLAP(On-Line Analytical Processing)翻译为联机分析处理,专注于分析处理,从对数据库操作来看,OLAP是对数据的查询;OLTP(on-line transaction processing)翻译为联机事务处理,专注于事务处理,从对数据库操作来看,OLTP主要是对数据的增删改。
2024-05-31 13:36:40
2388
原创 @Valid,@Validated 的分组校验和嵌套检验,实现高阶参数校验操作
JSR-303 是 JAVA EE 6 中的一项子规范,叫做 Bean Validation,官方参考实现是Hibernate Validator。注意:JSR-303实现与 Hibernate ORM 没有任何关系。 JSR 303 用于对 Java Bean 中的字段的值进行验证。Spring MVC 3.x 之中也大力支持 JSR-303,可以在控制器中对表单提交的数据方便地验证。先讲一下这两个注解:@Valid与@Validated都是用来校验接收参数的,如果不使用注解校验参数,那么就需要在业务代码
2024-05-30 14:13:20
1673
原创 @Schedule注解,多个定时任务执行时造成阻塞不能按时执行
Scheduled注解任务的时候是在一个单线程中,如果有多个任务,其中一个任务执行时间过长,则有可能会导致其他后续任务被阻塞直到该任务执行完成。也就是会造成一些任务无法定时执行的错觉。源码:@Scheduled注解在注册时给定时任务生成了一个单线程的线程池(newSingleThreadScheduledExecutor())
2024-05-28 14:00:26
2258
原创 java反射之Field用法(获取对象的字段名和属性值)
Field是一个类,位于java.lang.reflect包下。在Java反射中Field类描述的是类的属性信息,功能包括:获取当前对象的成员变量的类型对成员变量重新设值。
2024-01-24 16:08:20
3370
原创 PostgreSQL教程--数据库查询表是否存在数据库中,表字段信息及主外键
【代码】PostgreSQL教程--数据库查询表是否存在数据库中,表字段信息及主外键。
2024-01-22 13:49:17
1704
原创 PostgreSQL教程--实现类似于MySQL的show create table功能
在MySQL数据库中,可以通过show create table查询表的create sql 语句,3、generate_create_table_statement函数。数据库中,没有类似的命令,但可以通过function 来实现。
2024-01-22 11:30:00
2206
原创 Vue3使用
1、reactive 和 ref 是 Vue 3 中的两种响应式数据绑定方式,ref 适用于简单的响应式数据,而 reactive 则适用于复杂对象或数组的响应式数据。在vue3中取而代之的是v-model,将:visible.sync 改为 v-model。3、reactive:可以直接访问和修改对象或数组的属性或元素,而无需使用 .value。当:visible的值为ture的时候,弹框显示,当为false的时候,弹框隐藏。1、定义一个普通的插槽,可以用div,任何标签。来表示visible的值。
2024-01-18 15:45:13
1216
Springboot + Vue ElementUI 实现MySQL&&Postgresql可视化源码
2023-08-15
基于 SpringBoot + Vue 实现的可视化拖拽编辑的大屏项目-AJ-Report
2023-05-09
一个超级棒的VUE流程设计器
2023-04-18
一个超级棒的VUE流程设计器-后端
2023-04-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅