10350_基于Springboot音乐专辑销售系统
1、项目包含
项目源码、项目文档、数据库脚本、软件工具等资料;
带你从零开始部署运行本套系统。绿-泡泡:QianXun-Software
2、项目介绍
本文阐述了网上音乐专辑销售系统的设计与实现。本系统由两个模块组成:前端用户和后台管理人员。它包含了顾客的注册登录、网站信息的浏览、专辑查询、购物并填写订单,并且由管理者来 ...
wso2~第三方IDP向wso2用户体系的同步
正常情况下,对接第三方IDP之后,在第三方IDP登录后重定向到wso2平台,然后用户就完成了初始化,并且为用户完成了默认应用的建立;如果希望在自己的用户后,手动为用户处理到wso2平台的用户同步,而不需要用户登录后再同步信息,就需要用到几个项目的用户处理流程了
添加keycloak用户到wso2
源码修改-支持kc用户id作为用户 ...
剑指offer-59、按之字形顺序打印⼆叉树
题⽬描述
请实现⼀个函数按照之字形打印⼆叉树,即第⼀⾏按照从左到右的顺序打印,第⼆层按照从右⾄左的顺序打印,第三⾏按照从左到右的顺序打印,其他⾏以此类推。
示例1
输⼊:{8,6,10,5,7,9,11}
返回值:[[8],[10,6],[5,7,9,11]]
思路及解答
双向链表(推荐)
借助双向链表,初始化⼀个添加⽅向 boolean 值,先将根节点 ...
10389_基于Springboot的物资管理系统
1、项目包含
项目源码、项目文档、数据库脚本、软件工具等资料;
带你从零开始部署运行本套系统。
2、项目介绍
随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了企业资产管理系统的开发全过程。通过分析企业资产管理系统方面的不足,创建了一个计算机管理企业资产管理系统的 ...
分表路由:为什么大神都用 & (n-1),而不用 % ?一次给你讲透
写在前面
"分库分表"大家都不陌生。当数据量激增时,我们习惯性地写下 userId % tableCount 来决定数据路由到哪张表。
这段代码逻辑正确、简单直观。但在对性能要求极高的底层中间件开发中,这真的是最优解吗?
如果我们翻开 JDK 1.8 的 HashMap 源码,会发现大神 Doug Lea 在计算数组下标时,刻意避开了 % 取模,而是使用 ...
Erupt 1.13.2 版本已发布,支持甘特图,MCP,开源通知模块
🐞 修复 erupt-magic-api 路径 bug,感谢 aurthurxlc 贡献的代码 #330
🧩 @Readonly 注解默认放开前端传值,可通过 @Readonly(allowChange = false) 关闭信任
🌟 增加排序按钮,可灵活配置多字段排序
🌟 MCP 能力增加鉴权控制及默认实现,支持 Cursor 等工具交互访问 erupt 实体数据
🌟 Erupt-AI 增加了新的大模型支持:Gro ...
数据同步神器!一款搞定多种数据源同步的开源中间件!
大家好,我是 Java陈序员。
在企业开发中,跨系统、跨数据库的数据同步早已成为企业日常运营的刚需。
但面对 MySQL、Oracle、Elasticsearch 等不同数据源,同步配置复杂、性能不可控、自定义转换难等问题,往往让开发者头疼不已。
今天,给大家推荐一款开源数据同步神器,一站式解决多场景数据同步难题!
关注微信公众号: ...
数据结构-堆
什么是堆
堆是一种满足以下条件的树:
堆中的每一个节点值都大于等于(或小于等于)子树中所有节点的值。或者说,任意一个节点的值都大于等于(或小于等于)所有子节点的值。
大家可以把堆(最大堆)理解为一个公司,这个公司很公平,谁能力强谁就当老大,不存在弱的人当老大,老大手底下的人一定不会比他强。这样有助于理解 ...
剑指offer-58、对称二叉树
题⽬描述
请实现⼀个函数,⽤来判断⼀棵⼆叉树是不是对称的。注意,如果⼀个⼆叉树同此⼆叉树的镜像是同样
的,定义其为对称的。
例如:下⾯这棵⼆叉树是对称的
下⾯这个就不是对称的:
示例1
输⼊:{8,6,6,5,7,7,5}
返回值:true
示例2:
输⼊:{8,6,9,5,7,7,5}
返回值:false
思路及解答
递归
递归,先判断根节点是否为 ...
springboot~传统WEB应用开启CSRF
CSRF 是什么?
CSRF(Cross-Site Request Forgery,跨站请求伪造) 是一种常见的Web安全漏洞。攻击者利用受害者已经登录的合法会话,诱使受害者执行非本意的操作。
简单比喻:
想象你在咖啡店会员卡里有钱,你每次消费只需要说“用会员卡支付”。攻击者伪装成服务员,在你面前说“用会员卡转账100元到XXX账户”。因为你已 ...
剑指offer-57、二叉树的下一个节点
题⽬描述
给定⼀个⼆叉树和其中的⼀个结点,请找出中序遍历顺序的下⼀个结点并且返回。注意,树中的结点不仅包含左右⼦结点,同时包含指向⽗结点的指针。
复杂的节点结构如下:
public class TreeLinkNode {
int val;
TreeLinkNode left = null;
TreeLinkNode right = null;
TreeLinkNode next = null;
TreeLinkNode ...
【开源工具分享】一款开源的高效PDF合并与图片转换工具:mergePDF,一款轻量级桌面可视化工具,支持将多个PDF文件合并为单一PDF,也可将PDF转换为图片格式,并提供“单张图片”与“长图片”两种
mergePDF介绍
mergePDF是一款开源、免费、高效的PDF合并与图片转换工具
工具简介
mergePDF 是一款轻量级桌面可视化工具,支持将多个PDF文件合并为单一PDF,也可将PDF转换为图片格式,并提供“单张图片”与“长图片”两种输出模式,便于文档整理、票据归档与打印优化。
别名:发票合并可视化工具
项目维护地址:https://gite ...
jvm~分析gc老年代内存过高的原因
gc的老年代内存高居不下,导致最后full gc的发生,我们需要通过分析gc dump文件来解决biggest objects过多的问题
生成dump文件
在keycloak容器中安装轻量级工具
microdnf install -y wget
microdnf install -y procps-ng #包含ps命令
ps -aux # 找到keycloak的pid,默认是712
wget https://github.com/apangin/jattach/re ...
剑指offer-56、删除链表中重复的节点
题⽬描述
在⼀个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表 1->2->3->3->4->4->5 处理后为 1->2->5
示例1
输⼊:{1,2,3,3,4,4,5}
返回值:{1,2,5}
思路及解答
hash统计
第一次遍历统计频率,第二次遍历删除重复节点
import java.util.HashMap;
public class ...
Java 哪些情况会导致内存泄漏
今天我们来一起聊一聊有哪些情况会导致内存泄漏。
什么是 内存泄漏 呢?
内存泄漏 是指对象 已经不再被程序使用,但因为某些原因 无法被垃圾回收器回收,长期占用内存,最终可能引发 OOM(OutOfMemoryError)。
接下来我们看一下常见的几类内存泄漏场景。
1、生命周期长的集合
将对象放入 静态 或 生命周期很长 ...
Spring AOP + Guava RateLimiter:我是如何用注解实现优雅限流的?
写在前面
提起 AOP(面向切面编程),大家的第一反应往往是:“哦,那个用来打印日志、管理事务、或者做权限校验的。”
其实,AOP 的能力远不止于此。在面对高并发场景下的接口自我保护时,它同样能发挥奇效。
最近在项目中遇到了一个真实场景:这是一个基于 MQ 触发的定时跑批任务。平日里风平浪静,可是一旦大促或者数 ...
回溯算法总结
概述
其实回溯算法和我们常说的 DFS 算法非常类似,本质上就是一种暴力穷举算法。回溯算法和 DFS 算法的细微差别是:回溯算法是在遍历「树枝」,DFS 算法是在遍历「节点」
抽象地说,解决一个回溯问题,实际上就是遍历一棵决策树的过程,树的每个叶子节点存放着一个合法答案。你把整棵树遍历一遍,把叶子节点上的答案都收集 ...
Java 操作 Markdown(1)--commonmark-java 使用
commonmark-java 是一个用于解析和渲染 Markdown 文本的 Java 库;本文主要介绍其基本使用,文中所使用到的软件版本:Java 17.0.5、commonmark-java 0.25.1。
1、简介
commonmark-java 可以用来解析抽象语法树(AST),访问和操作其节点,以及生成 HTML 或 Markdown。它最初是 commonmark.js 的移植版,但后来发 ...
分库分表数据源ShardingSphereDataSource的Connection元数据误用问题分析
背景
对于分库分表应用来说,使用org.apache.shardingsphere.driver.jdbc.core.datasource.ShardingSphereDataSource是一个不错的解决方案,你可以通过配置文件编写分库分表规则,从而在编码时透明地使用分表(当然,路由规则的相关字段还是要传的,之前也有文章分析过这些字段的处理过程:深入理解Mybatis分库分表执行原理 ...
使用Java Stream,将集合转换为一对一Map
在日常的开发工作中,我们经常使用到Java Stream,特别是Stream API中提供的Collectors.toList()收集器,
但有些场景下,我们需要将集合转换为Map,这时候就需要使用到Stream API中提供的另一个收集器:
Collectors.toMap,它可以将流中的元素映射为键值对,并收集到一个Map中。
1. 三种主要的重载方法
Collectors.toMap有3 ...