自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

大家好,我是敖云岚,一个沉迷代码的 “技术玩家”。擅长 Java、C++ 开发,对 MySQL、Redis、RabbitMQ 等技术也颇有研究。博客里既有硬核技术干货,也有诙谐幽默的编程日常分享。愿和你一起,笑着学技术,快乐敲代码!

写博客时,我时而化身严肃的 “代码教官”,剖析技术原理;时而变身搞笑 “段子博主”,用趣味比喻让枯燥知识 “活” 起来。别担心技术太难,跟着我,咱们一边吐槽代码里的 “坑”,一边解锁编程的超能力,在技术江湖里浪出独特风采!

  • 博客(155)
  • 收藏
  • 关注

原创 【Java】SVN 版本控制软件的快速安装(可视化)

SVN(Subversion)是一款集中式版本控制系统,采用客户端-服务器架构,所有版本信息存储在中央服务器中。与Git相比,SVN权限控制精细但依赖网络连接,适合小型项目。安装配置包括服务器端创建版本仓库(svnadmin create)和客户端集成(TortoiseSVN)。工作流程为:检出代码→本地修改→更新解决冲突→提交变更。服务器端通过svnserve命令监管仓库,客户端通过右键菜单操作,支持中英文切换。SVN适合需要严格权限管理的开发场景。

2025-07-22 17:56:06 853

原创 【Java】新项目中 JDK17 降级为 JDK8 的基本步骤

JDK降级操作指南:1)检查并确保pom.xml中SpringBoot版本为2.x系列;2)在properties标签中设置java.version为1.8;3)调整项目运行环境为JDK1.8;4)修改Project的SDK版本为1.8;5)最后将Modules的JDK版本也同步改为1.8。通过这五个步骤即可完成Java项目从高版本JDK到1.8版本的降级操作。(99字)

2025-07-22 13:51:22 256

原创 【Java】记录解决“程序包 sun.misc不存在”的问题

本文针对IDEA中使用Maven下载依赖后仍存在问题的情况,提供了解决方案。首先需要打开Project Structure设置,然后检查并修改项目的JDK版本配置。该方案适用于因JDK版本不匹配导致的依赖下载问题,通过调整JDK版本设置可有效解决此类问题。(48字)

2025-07-22 13:42:14 154

原创 【AI-Agent】Trae 的使用体验

Trae是一款集成AI助手的编程软件,支持代码管理和智能问答。国内版官网为trae.com.cn,国际版依赖Claude提供更美观的UI。安装时建议Windows用户选择D盘,安装后需登录并配置。使用示例:输入"制作百度首页",AI生成代码后需安装npx命令进行预览,实际效果出色。软件提供主题选择和第三方账号登录功能。

2025-07-15 17:26:53 287

原创 【SVN】SVN 客户端的安装与操作

SVN客户端使用指南摘要:本文介绍了SVN客户端的基本安装与使用方法。首先需从官网下载安装SVN客户端及语言包,安装后会集成到系统右键菜单。使用步骤包括从服务器拉取项目(检出操作)、用户认证等。重点注意事项包括不能手动修改.svn隐藏目录。文章还说明了SVN文件状态图标含义(正常、修改、冲突等)以及基本操作:将文件添加到版本库、提交变更、版本回退和查看日志。SVN通过特定图标直观显示文件状态变化,帮助用户管理版本控制。

2025-07-14 14:29:40 626

原创 【Dify】Dify 应用开发平台的介绍

Dify是一款开源的大语言模型(LLM)应用开发平台,采用后端即服务(BaaS)和LLMOps理念,帮助开发者快速构建生成式AI应用。该平台提供可视化界面、RAG引擎、Agent框架等功能模块,支持数百种模型,可实现零代码/低代码开发,适用于智能客服、AI写作等场景。Dify的优势在于降低开发门槛和成本,支持插件扩展和多模态交互,同时提供企业级应用支持。硬件要求为CPU≥2核、内存≥4GB。适用于企业、开发者和个人用户快速实现AI应用开发。

2025-07-14 07:00:00 1160

原创 【SpringAI Alibaba】基于 Redis 实现连续对话与向量存储

本文介绍了基于Redis实现AI连续对话和向量存储查询的技术方案。在连续对话方面,通过添加Redis存储器依赖和配置Redis连接信息,使用MessageWindowChatMemory保存历史对话,实现多轮对话上下文记忆功能。在向量存储方面,详细说明了RedisVectorStore的配置和使用流程,包括安装RediSearch插件、添加向量数据、避免重复存储以及相似度查询的实现方法。整个方案利用Redis高性能特性,解决了大模型对话记忆和向量检索的关键问题,为AI应用开发提供了高效可靠的技术实现路径。

2025-07-13 14:19:57 362

原创 【SpringAI Alibaba】提示词工程+结构化输出+决策分析

本文介绍了提示词工程、结构化输出和决策分析的三大技术要点。在提示词工程部分,详细阐述了Prompt的概念、发展历程以及PromptTemplate的动态内容管理优势。结构化输出部分讲解了如何将LLM结果转换为JSON等可编程数据类型的方法。决策分析部分重点说明了意图识别的作用、应用场景和代码实现,包括智能客服、语音助手等典型用例。全文通过SpringAI的代码示例,展示了提示词模板、结构化输出转换和意图识别的具体实现方式,体现了AI技术在实际业务场景中的应用价值。

2025-07-13 13:28:31 1040

原创 【SSM】SpringBoot 实现邮件发送

本文介绍了使用Spring Boot发送邮件的完整流程:1. 准备工作(开启163邮箱SMTP服务并获取授权码);2. 添加Spring邮件starter依赖;3. 配置邮件服务器参数;4. 编写邮件发送代码,包括创建控制器、注入邮件发送器、设置收件人信息等。文中提供了完整的示例代码,包含邮件实体类定义和发送接口实现,可快速实现邮件发送功能。

2025-07-13 11:16:46 359

原创 【Python-网络爬虫】爬虫的基础概念介绍

网络爬虫的作用与应用场景全面解析网络爬虫(Web Crawler)作为互联网数据采集的核心技术,在当今数字化时代发挥着不可替代的作用。根据搜索结果,我将系统性地介绍爬虫的主要功能、应用场景和技术特点,帮助您全面理解这一技术的价值与边界。

2025-07-07 16:04:17 1025

原创 【AI】Spring AI Alibaba 的介绍

SpringAIAlibaba是基于SpringAI构建的开源项目,为开发者提供阿里云通义系列模型的高层次API抽象与云原生集成方案。该项目支持多种AI模型服务(如聊天、文生图、音频转录等),具备同步/流式API调用、结构化输出、矢量数据库存储、函数调用及RAG开发模式等功能,帮助开发者快速构建复杂AI应用。文章还介绍了AI模型、提示词模板、嵌入向量、Token计算等核心概念,以及检索增强生成(RAG)和函数调用等关键技术,展现了Java生态在AI应用开发领域的实践创新。

2025-06-18 15:11:41 1157

原创 【安装指南】Redis 的多种安装方式汇总

本文介绍了在CentOS7环境下安装和配置Redis服务的多种方法。主要内容包括:1)本地安装Redis的详细步骤,涵盖SCL源安装、符号链接创建、解压安装包及服务启停;2)使用Docker部署Redis镜像的流程,包括镜像拉取和配置文件挂载;3)通过systemctl管理系统服务的操作方法;4)Redis核心配置详解,涉及访问密码设置、危险命令禁用、远程连接、持久化(RDB/AOF)及集群配置等关键参数。文章提供了两种安装方式的完整指导,并重点解析了生产环境中常用的安全配置和性能优化选项。

2025-06-18 09:30:00 1848

原创 【Redis】常见问题解决方案:缓存预热与冷启动

在 Spring Boot 启动之后,可以通过以下手段实现缓存预热:​1. 使用启动监听事件实现缓存预热。​2. 使用 @PostConstruct 注解实现缓存预热。​3. 使用 CommandLineRunner 或 ApplicationRunner 实现缓存预热。​4. 通过实现 InitializingBean 接口,并重写 afterPropertiesSet 方法实现缓存预热。

2025-06-18 09:00:00 986

原创 【Redis】缓存三件套:缓存雪崩+缓存穿透+缓存击穿

也就是说缓存穿透是因为数据库查询无数据,出于容错考虑,不会将结果保存到缓存中,因此每次请求都会去查询数据库,这种情况就叫做缓存穿透。:对于某些热点缓存,我们可以设置永不过期,这样就能保证缓存的稳定性,但需要注意在数据更改之后,要及时更新此热点缓存,不然就会造成查询结果的误差。,导致大量的请求直接查询数据库,从而对数据库造成了巨大的压力,严重情况下可能会导致数据库宕机的情况叫做缓存雪崩。:在缓存即将过期之前,提前异步加载缓存,避免在缓存失效时大量请求直接打到数据库或者后端服务。

2025-06-17 16:30:09 1332

原创 【Redis】Redis 关于 BigKey 的实践规约

一个 String 类型的 Key,它的值为 5 MB。一个 ZSET 类型的 Key,它的成员数量为10,000个。一个Hash类型的Key,它的成员数量虽然只有1,000个但这些成员的Value(值)总大小为100 MB。单个key的value小于10KB对于集合类型的key,建议元素数量小于1000。

2025-06-17 16:01:24 863

原创 【Dify】基于 Agent 实现热门新闻生成助手

智能助手(Agent Assistant),利用大语言模型的推理能力,能够自主对复杂的人类任务进行目标规划、任务拆解、工具调用、过程迭代,并在没有人类干预的情况下完成任务。

2025-06-09 08:00:00 324

原创 【LangChain4J】LangChain4J 第五弹:基于 MCP 实现快递助手并调用上万种服务

MCP(Model Context Protocol,模型上下文协议) ,2024年11月底,由 Anthropic 推出的一种开放标准。旨在为大语言模型(LLM)提供统一的、标准化方式与外部数据源和工具之间进行通信。(Agent 需要调用外部工具和API、访问数据库、执行代码等)Agent 需要理解其他 Agent 的意图、协同完成任务、与用户进行自然的对话。

2025-06-08 13:57:50 1493

原创 【LangChain4J】LangChain4J 第四弹:RAG 的多种实现方式

定义:RAG(Retrieval-Augmented Generation,检索增强生成)是通过从外接数据源检索相关信息,并注入提示词,提升大语言模型(LLM)查询精准度的一种技术。通过这种实现方式,大语言模型可以获取到特定领域的相关信息,并能够利用这些信息进行回复,从而降低了发生幻觉的可能性。RAG 解决传统大模型局限性知识过时:传统大模型依赖预训练数据,无法获取最新信息。幻觉问题:传统模型可能生成不准确或虚假的信息。RAG 优势实时更新:允许模型访问最新信息,解决知识局限性问题。提高准确性。

2025-06-08 13:45:49 541

原创 【LangChain4J】LangChain4J 第三弹:多模态与文生图的实现

是多模态任务的一种具体形式,指通过文本描述生成对应图像的技术。其核心目标是将人类语言的抽象语义转化为视觉具象,广泛应用于创意设计、游戏开发、虚拟内容生成等领域。

2025-06-08 13:40:18 957

原创 【LangChain4J】LangChain4J 第二弹:连续对话与数据持久化存储

LangChain4J 是 Java 生态中基于 LangChain 理念的框架,用于构建智能对话系统和 LLM 应用。在连续对话场景中,核心是维护对话上下文(Context),确保模型能基于历史交互生成连贯回答。

2025-06-06 16:35:54 1038

原创 【Redis】分布式锁的介绍与演进之路

在一个分布式的系统中, 也会涉及到多个节点访问同一个公共资源的情况. 此时就需要通过 锁 来做互斥控制, 避免出现类似于 "线程安全" 的问题。而 java 的 synchronized 或者 C++ 的 std::mutex, 这样的锁都是只能在当前进程中生效, 在分布式的这种多个进程多个主机的场景下就无能为力了。本质上就是使用一个公共的服务器, 来记录 加锁状态。这个公共的服务器可以是 Redis, 也可以是其他组件(比如 MySQL 或者 ZooKeeper 等), 还可以是我们自己写的一个服务。

2025-06-06 10:28:06 1275 4

原创 【Redis】Redis 的持久化策略

Linux中主进程实现对数据的读写操作都是操作物理内存,但是所有的主进程都无法直接操作物理内存,而是由操作系统给每个主进程分配一个虚拟内存,操作系统会维护一个虚拟内存与物理内存之间的映射关系表,这个表叫做页表(映射到物理内存的数据地址)。Redis 生成的 rdb 文件是存放在 Redis 的工作目录中的,也是在Redis配置文件中,进行设置的。当这个快照生成完毕之后,再删除之前的RDB文件,把新的生成的RBD文件名字改成刚才的dump.rdb,从而保证rdb文件的唯一性。

2025-06-06 10:17:02 1183

原创 【Redis】Redis 的常见客户端汇总

1. 自定义序列化器super();@Override@Override2. 配置序列化器@Bean// 使用StringRedisSerializer来序列化和反序列化redis的key值// Hash的key也采用StringRedisSerializer的序列化方式。

2025-06-05 18:44:51 1259

原创 【AI-安装指南】Redis Stack 的安装与使用

传统的 Redis 服务是不能存储向量的,因此我们需要首先安装 Redis Stack,而 Windows 电脑安 装 Redis Stack,官方只提供了 Docker 的安装方式,因此我们需要先按照 Docker,再在 Docker 上安装 Redis Stack。Redis Stack 是一个由 Redis 官方提供的软件套件,旨在简化开发人员对 Redis 模块的使用体验, 并增强 Redis 的功能。​Redis Stack 不是 Redis 的替代品,而是扩展其能力的工具。

2025-05-30 22:42:49 1361

原创 【Python】第二弹:搭建 Python 环境

如果直接双击这个 python.exe , 就会打开 Python 的交互式解释器(控制台程序). 在这个交互式解释器中, 就可以输入 Python 代码了。2. 选择项目所在的位置, 并选择使用的 Python 解释器(一般情况下, PyCharm 能够自动识别出 Python 解释器的位置. 但是如果没有自动识别出来,也没关系, 点击右侧的 ... 选择之前安装的 Python 的路径位置即可)注意: 这个搜索结果中没有标识出 "官网", 但是大家要认准 jetbrains.com 这个域名.

2025-05-30 12:25:08 1032

原创 【Python】第一弹:对 Python 的认知

当时,计算机领域正朝着更高效、更便捷的编程方向发展,吉多希望创造一门语言,既能像 C 语言那样拥有强大的系统控制能力,又能具备 Shell 脚本语言的便捷性和灵活性,Python 便应运而生。Django 是一个功能强大、高度集成的框架,提供了从数据库管理、用户认证到 URL 路由等一系列完善的解决方案,适合快速开发大型、复杂的 Web 应用程序。Flask 则是一个轻量级的 Web 框架,它给予开发者极大的灵活性,适合小型项目以及快速原型开发,开发者可以根据需求自由选择所需的扩展和插件。

2025-05-30 12:12:32 883 1

原创 【Linux】定时任务 Crontab 与时间同步服务器

本文介绍了Linux系统中用户定时任务的创建与管理方法。主要内容包括:1)通过crontab命令创建定时任务及格式说明;2)管理员查看和管理用户定时任务的两种方式(/var/spool/cron目录和crontab命令);3)通过/etc/cron.deny和/etc/cron.allow文件实现用户黑白名单管理。文中还提供了多个定时任务设置实例,如定时关机、周期性执行命令等。黑名单与白名单文件不能同时存在,默认系统只提供黑名单功能。

2025-05-25 19:51:24 505

原创 【Linux】RPM 软件包的使用技巧

红帽系统中RPM软件包的管理操作及YUM软件仓库配置方法。主要内容包括:1)RPM包的基本操作(查询、删除、安装)及依赖关系处理;2)本地YUM仓库配置步骤(目录设置、配置文件编写、缓存建立);3)YUM常用命令(软件查询、安装、删除)。文章重点讲解了RPM与YUM工具的配合使用,特别强调了通过YUM自动解决软件依赖关系的优势,并提供了从本地源到网络源的配置方法。

2025-05-25 17:59:09 446

原创 【Hadoop】大数据技术之 MapReduce

MapReduce是一个 分布式运算程序 的编程框架,是用户开发“基于 Hadoop的数据分析应用”的核心框架。MapReduce核心功能是将 用户编写的业务逻辑代码 和 自带默认组件 整合成一个完整的分布式运算程序 ,并发运行在一个 Hadoop集群上。

2025-05-24 00:50:04 1338

原创 【Hadoop】大数据技术之 HDFS

随着数据量越来越大,在一个操作系统存不下所有的数据,那么就分配到更多的操作系统管理的盘中,但是不方便管理和维护,迫切需要一种系统来管理多台机器上的文件,这就是分布式文件管理系统。HDFS 只是分布式文件管理系统中的一种。它是一个文件系统,用于存储文件,通过目录树来定位文件;其次,它是分布式的,由很多服务器联合起来实现其功能,集群中的服务器有各自的角色。适合一次写入,多次读出的场景。一个文件经过创建、写入和关闭之后就不需要改变。

2025-05-23 23:39:29 1072 1

原创 【Hadoop】Hadoop 的入门概述

Yet Another Resource Negotiator 简称YARN ,另一种资源协调者,是Hadoop 的资源管理器。ResourceManager(RM):整个集群资源(内存、CPU等)的老大NodeManager(NM):单个节点服务器资源老大(每个NodeManager上可以有多个Container)ApplicationMaster(AM):单个任务运行的老大(集群上可以运行多个ApplicationMaster)

2025-05-23 23:21:05 1017

原创 【安装指南】Canal 环境的安装与使用

因为 Canal 配置文件(example/instance.properties)默认是 canal/canal,如果不设置本步骤,需要修改 instance.properties 配置文件即可(可以设置为 Root 用户)。​ 实现的增量数据订阅与消费服务,其核心是通过模拟 MySQL Slave 的行为,从 Master 获取 binlog 事件并解析后投递到消息队列(如 RabbitMQ/Kafka)。缺点:会产生大量的日志,特别是在表中有大量数据更新时,binlog 体积较大。

2025-05-23 22:50:00 1739 1

原创 【MySQL】MySQL 数据库基础语法与命令全集

新增:-- 单行插入insert into 表(字段1, ..., 字段N) values (value1, ..., value N);-- 多行插入insert into 表(字段1, ..., 字段N) values查询:-- 全列查询select * from 表-- 指定列查询select 字段1,字段2... from 表-- 查询表达式字段select 字段1+100,字段2+字段3 from 表-- 别名select 字段1 别名1, 字段2 别名2 from 表。

2025-05-22 23:03:41 792

原创 【Java】JavaSE语法之抽象类和接口

Object是Java默认提供的一个类。Java里面除了Object类,所有的类都是存在继承关系的。默认会继承Object父类。即所有类的对象都可以使用Object的引用进行接收。范例:使用Object接收所有类的对象。

2025-05-22 23:02:15 723

原创 【云计算】服务端高并发分布式结构演进之路

初期,我们需要利用我们精干的技术团队,快速将业务系统投入市场进行检验,并且可以迅速响应变化要求。但好在前期用户访问量很少,没有对我们的性能、安全等提出很高的要求,而且系统架构简单,无需专业的运维团队,所以选择单机架构(应用服务和数据库服务共用同一台服务器)是合适的。

2025-05-21 23:26:47 965

原创 【RabbitMQ】记录 InvalidDefinitionException: Java 8 date/time type

【代码】【RabbitMQ】记录 InvalidDefinitionException: Java 8 date/time type。

2025-05-21 09:37:17 570

原创 【设计模式】基于 Java 语言实现工厂模式

简单⼯⼚模式是⼀种创建型设计模式,但并不属于23种设计模式之⼀,更多的是⼀种编程习惯。将产品的创建过程封装在⼀个⼯⼚类中,把创建对象的流程集中在这个⼯⼚类⾥⾯。简单⼯⼚模式的角色:描述产品的通⽤⾏为,通常由一个 Java 接口或一个 Java 抽象类定义。具体产品:实现抽象产品接⼝或继承抽象产品类。负责创建产品,根据传递的不同参数创建不同的产品示例。

2025-05-20 21:08:10 1410

原创 【设计模式】基于 Java 语言的单例模式

单例模式是⼀种, 它的核⼼思想是只有⼀个实例的意思是,在整个应⽤程序中,只存在该类的⼀个实例对象,⽽不是创建多个相同类型的对象。全局访问点的意思是,为了让其他类能够获取到这个唯⼀实例,该类提供了⼀个全局访问点(通常是⼀个静态⽅法),通过这个⽅法就能获得实例。

2025-05-20 21:05:30 883

原创 【Java】计算机发展简史

计算的需求在人类的历史中是广泛存在的,发展大体经历了从一般计算工具到机械计算机到目前的电子计算机的发展历程。 人类对计算的需求,驱动我们不断的发明、改善计算机。目前这个时代是“电子计算机”的时代,发展的潮流是:更快速、更稳定、更微型。计算机的以后将如何发展,期待大家的努力。

2025-05-19 23:36:47 1015

原创 【安装指南】Tomcat 服务器的安装与使用

实际开发中我们的 HTML 可能不止一个, 依赖的 CSS / JavaScript 文件也可能比较多. 这个时候就不适合全都拷贝到 webapps/ROOT 目录中了(这就会显的比较乱).我们可以创建一个单独的目录, 和 ROOT 并列, 来存放我们要部署的内容.浏览器解析 hello2.html, 其中的 link 标签, img 标签, script 标签都会分别触发一次 GET 请求. 请求的 路径 分别为 /style.css , /doge.jpg , /app.js。

2025-05-19 23:34:02 1655

正确的settings.xml文件,Maven 国内源配置

正确的settings.xml文件(配置了国内源)

2025-05-06

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除