783 1 分钟

# Dify 相关扩展功能 # 简介 本篇文章介绍对 dify 做相关扩展的介绍 # 开始 # 自定义聊天机器人界面 如果想自定义对话框样式,可以看官网的另一个模板项目 webapp-conversation MIT 协议,可以自由修改 拉取代码到本地后: 在当前目录下创建一个名为 .env.local 的文件,并从 .env.example 复制内容。设置以下配置项: APP ID: 这是您应用的唯一标识符。您可以在应用详情页的 URL 中找到它。 例如,在 URL https://cloud.dify.ai/app/xxx/workflow 中,xxx 就是您的 APP...
3.8k 3 分钟

# scaffold 项目之分布式锁 # 简介 分布式锁 是一种用于协调分布式系统中的多个节点或服务实例对共享资源的访问的机制。它的主要目标是确保在分布式环境下,同一时间只有一个节点或进程能够操作共享资源,从而避免资源竞争和数据不一致性问题。 也就是在 集群环境下 保证某些资源或者数据一致性,本项目对于分布式锁组件使用的是基于 Redis 实现的: 基于 Redis 的分布式锁 原理:利用 Redis 的单线程特性和原子性操作来实现锁。常用的方法是使用 Redis 的 SETNX ( SET if Not eXists )命令,该命令在键不存在时设置其值,并返回 1;否则返回...
1.3k 1 分钟

# scaffold 项目之异步任务 # 简介 其实就是非阻塞的执行代码 在之前的 scaffold-spring-boot-starter-job 技术组件,除了提供定时任务的功能,还提供了 Async 异步任务的能力。系统使用异步任务,提升执行效率。例如说: 操作日志模块 ,异步记录【操作日志】 访问日志模块 ,异步记录【访问日志】 # 开始使用 # Async 配置 在 ScaffoldAsyncAutoConfiguration 配置类,设置使用...
2.3k 2 分钟

# scaffold 项目之本地缓存 # 简介 为什么项目中有 redis缓存 还需要 本地缓存 呢? Redis 缓存:适用于需要分布式、高并发、大容量数据缓存的场景,尤其是数据需要共享的场景。 本地缓存:适用于单个服务节点内部需要高速访问、低延迟的小数据量缓存场景。还有一点是: 对于 有状态的 java 对象无法存到 Redis 中。 关于 有状态 和 无状态 的区别: 有状态对象:具有内部状态,行为和结果依赖于该状态,适用于需要跟踪对象行为和数据变化的场景。 无状态对象:没有内部状态,行为和结果仅取决于输入参数,适用于需要提供一致行为和结果的场景。 #...
9.6k 9 分钟

# scaffold 项目之 redis 缓存 # 简介 类型:NoSQL 数据库,主要存储数据在内存中。 数据结构:支持多种数据结构,包括字符串(strings)、哈希(hashes)、列表(lists)、集合(sets)、有序集合(sorted sets)和范围查询、位图(bitmaps)、超日志(hyperloglogs)以及地理空间索引(geospatial indexes)。 性能:由于数据存储在内存中,访问速度极快,通常能达到每秒数十万次的读写速度。 持久化:虽然 Redis 是基于内存的系统,但它也提供了多种持久化机制,如 RDB(快照)和...
7.2k 7 分钟

# scaffold 项目之动态数据源 # 简介 在一个项目中,免不了需要连接多个数据库来操作业务,比如做统计表,可能需要多个数据库的业务数据合并起来统计。本项目使用的是 MyBatis 框架,可以用它提供的 api 实现 动态数据源 还有 数据库连接池 。 # 数据库连接池 本项目数据连接池用的是 druid ,市面上常用的线程池,Druid 是阿里巴巴开源的高性能数据库连接池,广泛应用于 Java 应用中,支持多种数据库,并提供强大的监控、SQL 执行优化和安全功能。 #...
63 1 分钟

# 收集其他项目想法 # 简介 本篇文章用于收集记录想法,用于构成一个完整的项目。 # 人情簿族谱系统 # 简介 # 技术栈 # 功能 # 总结 # 参考资料
25k 23 分钟

# scaffold 项目之 MyBatis 数据库 # 简介 MyBatis 是一个优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生类型、接口和 Java 的 POJO(Plain Old Java Objects)为数据库中的记录。 MyBatis 是最容易读懂的 java 框架之一, 本项目用 MyBatis 封装成 springboot 组件。 # 实体类 BaseDO 是所有数据库实体父类,有所有子类都共有的熟悉,例如...
29k 26 分钟

# scaffold 项目之操作日志、访问日志、错误日志 # 简介 在一个系统中,我们需要知道哪些用户做了哪些操作,或者哪些用户访问了项目,还有系统运行的状态这些记录,方便我们定位排查问题或者溯源。 在本项目中提供了 2 大类 4 种系统日志: 审计日志:用户操作日志、登陆日志 API 日志:访问日志、错误日志 # 操作日志 操作日志记录:【什么人】在【什么数据】对【什么对象】做了【什么事情】,可以在【系统管理 -> 审计日志 -> 操作日志】菜单中看到对应的列表,详情如图显示: 可以看到具体操作了什么,结果如何。 后续可以考虑记录更详细的情况,比如...
12k 11 分钟

# scaffold 项目之 Excel 导入导出 # 简介 Excel 导入通常指的是将 Excel 文件(如 .xls 或 .xlsx 格式)中的数据读取到程序中,以便进行进一步处理和分析。导出相关报表等。本项目封装了 scaffold-spring-boot-starter-excel 技术组件,基于 EasyExcel 实现 Excel 的读写操作,可用于实现最常见的 Excel 导入导出等功能。 # 关于 EasyExcel EasyExcel 是阿里开源的 Excel 工具库,具有简单易用、低内存、高性能的特点。 在尽可用节约内存的情况下,支持百万行的 Excel...