自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(67)
  • 收藏
  • 关注

原创 RabbitMQ入门

RabbitMQ消息队列入门指南,全面介绍了MQ的基本概念和使用方法。文章从同步/异步调用对比入手,分析MQ的优势与适用场景。详细讲解了RabbitMQ的安装部署、核心架构(交换机、队列、绑定关系),并通过控制台操作和Java客户端示例演示了基本使用流程。重点解析了三种交换机模式(Fanout广播、Direct定向、Topic话题)的应用场景和实现方式,包括基于Bean和注解的声明方法。最后针对消息转换器,建议采用JSON序列化替代默认JDK序列化以解决安全风险和性能问题。文章内容循序渐进,既包

2025-08-21 17:20:58 384

原创 分布式搜索(Elasticsearch)深入用法

本文系统介绍了Elasticsearch(ES)的核心功能与应用实现。主要内容包括:1)数据聚合的三种类型(桶聚合、度量聚合、管道聚合)及其DSL与RestAPI实现;2)自动补全功能实现,涵盖拼音分词器配置、自定义分词器构建和Completion Suggester查询;3)ES与MySQL数据同步的三种方案对比及MQ实现方案;4)ES集群搭建与管理,解决海量数据存储和单点故障问题,包括分片机制、故障转移和分布式查询等关键技术。通过完整的技术方案,展示了如何构建高性能、高可用的搜索服务系统。

2025-08-19 21:59:49 996

原创 分布式搜索(Elasticsearch)基本用法

本文介绍了Elasticsearch的基础知识和核心操作。主要内容包括:Elasticsearch的概念与特性,作为基于Lucene的分布式搜索引擎,支持RESTful接口和水平扩展;索引与文档的基本操作,包括创建、查询、修改和删除;IK分词器的配置与使用;DSL查询语法,涵盖全文检索、精确查询、地理坐标查询和复合查询;搜索结果处理技巧,如排序、分页和高亮显示;以及通过Java的RestHighLevelClient进行索引库和文档操作的实践方法。文章还对比了Elasticsearch与MySQL的适用场景

2025-08-19 10:40:48 1178

原创 LangChain4j

本文介绍了大模型部署与调用的关键技术,包括本地部署(Ollama工具)、云端API调用方式,以及通过LangChain4j框架集成大模型的方法。重点讲解了Spring整合LangChain4j的实践步骤,涵盖基础配置、AiServices工具类使用、流式调用和会话记忆管理。针对RAG知识库场景,详细阐述了向量数据库的构建流程(文档加载、分割、向量化存储)和检索优化技术(相似度阈值控制)。最后介绍了工具方法集成方案,为开发者提供了从模型部署到应用集成的完整技术路线。

2025-08-17 15:36:17 683

原创 双token的实现(javaweb含代码、登录全过程)

文章摘要:本文详细介绍了JWT令牌系统的实现方案,重点阐述了双Token机制在Web应用中的安全应用。系统采用AccessToken(短期)和RefreshToken(长期)配合使用,通过JWT工具类实现令牌生成与验证,结合Servlet处理令牌刷新请求。前后端分别通过拦截器实现自动令牌管理:后端过滤器验证令牌有效性并处理刷新逻辑,前端axios拦截器自动附加令牌并处理401响应。文章还特别强调了安全注意事项,包括HTTPS传输、密钥保护、短期有效期设置等,并提供了完整的代码实现方案,涵盖令牌生成、刷新流程

2025-07-11 17:40:19 616

原创 注解与反射

Java注解(Annotation)是程序的元数据,通过@注解名形式附加在代码元素上,提供额外信息。内置注解包括@Override、@Deprecated和@SuppressWarnings。元注解(如@Target、@Retention)用于注解其他注解。自定义注解通过@interface定义,可包含配置参数。反射机制允许动态访问类信息(构造方法、成员变量和方法),通过Class对象的三种获取方式实现。动态代理则通过接口实现无侵入式功能扩展,为对象方法添加额外行为。

2025-07-06 17:18:58 723

原创 Web后端开发(Maven高级:分模块设计、继承与聚合)

本文介绍了Maven分模块设计与开发的核心概念。主要内容包括:1)分模块设计原则,通过功能拆分实现项目易维护、可扩展性;2)继承关系,子工程通过parent标签继承父工程配置,支持依赖统一管理;3)版本锁定机制,利用dependencyManagement实现依赖版本集中控制;4)聚合功能,通过空工程聚合多个模块实现整体构建;5)私服应用,作为局域网内仓库服务,支持RELEASE和SNAPSHOT版本资源管理。这些机制共同提高了Maven项目的模块化水平和构建效率。

2025-07-04 17:09:11 317

原创 Web后端开发(事务管理、AOP)

文章系统介绍了Spring框架中的事务管理和AOP技术。事务管理部分阐述了事务概念、Spring事务管理实现方式及进阶配置(rollbackFor和propagation)。AOP部分详细讲解了AOP基础概念(通知、切入点、切面等)、快速入门方法、核心执行流程,以及进阶使用技巧(通知类型、执行顺序、表达式等)。重点说明了AOP通过动态代理实现方法增强的特性,并提供了事务日志配置示例。全文兼顾理论概念与实践指导,全面覆盖Spring两大核心功能模块。

2025-07-04 11:37:29 900

原创 基础登录功能(登录验证、登录校验)

定义一个类,实现Filter接口,并重写其所有方法。

2025-07-03 21:10:35 803

原创 Web案例(员工管理系统)

文件上传,是指将本地图片、视频、音频等文件上传到服务器,供其他用户浏览或下载的过程。文件上传在项目中应用非常广泛,我们经常发微博、发朋友圈都用到了文件上传功能。必须以post请求路径提交,enctype(编码格式)必须设置为multipart/form-data(这样能够将数据分隔成多个部分进行提交),类型必须为file运用一个API MultipartFile 来进行接收 要保证表单名字与方法形参名字一致。

2025-06-24 00:04:23 604

原创 Web程序案例(公司员工管理系统)

一个完整的请求路径,应该是类上的@RequestMapping 的valus属性+ 方法上的@RequestMapping的valus属性。描述模块的功能通常使用复数,也就是加s的格式来描述,表示此类资源,而非单个资源。查看页面原型明确需求(定义表结构、定义接口文档)——>阅读接口文档——>思路分析——>接口开发——>接口测试——>前后联调。但是还有更加简洁的方式,例如@GetMapping、@DeleteMapping、@PutMapping。REST是风格,是约定方式,约定不是规定可以打破。

2025-06-19 21:21:41 869

原创 Mybatis(XML映射文件、动态SQL)

准备数据库表创建一个新的springboot工程,选择引入对应的起步依赖(mybatis、mysql驱动、lombok)application.properties中引入数据库连接信息创建对应的实体类(实体类属性采用驼峰命名)准备Mapper接口。

2025-06-17 22:09:08 728

原创 Mybatis

就是使用Java语言操作关系型数据库的一套API。各个数据库厂商去实现这套接口,提供数据库驱动jar包。我们可以使用这套接口(JDBC)编程,真正的执行的代码是驱动jar包中的实现类。//建立连接原始JDBC;硬编码、繁琐、性能低不需要动数据库连接的代码,会自动配置自动封装查询结果使用spring.datasource时,数据库底层会自动建立数据库连接池,实现了连接的复用不需要频繁的获取连接。

2025-06-15 20:56:56 752

原创 MySQL(多表设计、多表查询)

连接查询:内连接:相当于查询A、B交集部分数据外连接:左外连接:查询左表所有数据(包括两张表交集部分数据)右外连接:查询右表所有数据(包括两张表交集部分数据)子查询索引是帮助数据库高效获取数据的 数据结构。优点:提高数据库查询的效率,降低数据库的IO成本通过索引列对数据进行排序,降低数据排序的成本,降低CPU消耗。缺点:索引会占用存储空间。索引大大提高了查询效率,同时却也降低了insert、update、delete的效率。

2025-06-13 17:00:29 682

原创 MySQL基础知识(DDL、DML)

存储和管理数据的仓库。简称DBMS。操作和管理数据库的大型软件。操作关系型数据库的标准语言,定义了一套操作关系型数据库统一标准。操作关系型数据库的标准语言,定义了一套操作关系型数据库统一标准。

2025-06-11 20:56:18 800

原创 Web后端开发(分层解耦)

当所有的操作都写在controller中时,代码的复用性和拓展性都比较差,项目难以维护,所以要分层解耦。

2025-06-10 21:26:21 663

原创 Web后端开发(请求、响应)

请求:获取请求数据响应:设置响应数据BS架构:浏览器/服务器架构模式。客户端只需要浏览器,应用程序的逻辑和数据都存储在服务器。CS架构:客户端/服务器架构模式。(需要下载响应的客户端即软件)CS(开发、维护麻烦 体验感强) BS(维护方便 体验一般)

2025-06-08 17:16:31 1223

原创 Web后端开发(SpringBootWeb、HTTP、Tomcat快速入门)

超文本传输协议,规定了浏览器和服务器之间数据传输的规则。1.基于TCP协议:面向连接,安全2.基于请求-响应模型的:一次请求一次响应3.HTTP协议是无状态的协议:对于事务处理没有记忆能力。每次请求-响应都是独立的。缺点:多次请求间不能共享数据。优点:速度快Web服务器是一个软件程序,对HTTP协议的操作进行封装,使得程序员不必直接对协议进行操作,让Web开发更加便捷。主要功能是“提供网上信息浏览服务”。Tomcat。

2025-06-04 20:47:47 1545 1

原创 Web后端快速入门(Maven)

Apche Maven 是一款用于管理和构建java项目的工具,它基于项目对象模型(POM)的概念,通过一小段信息来管理项目的构建。通过插件完成项目的标准化构建仓库:用于存储资源,管理各种jar包。(导入依赖时一般先从本地仓库加载,如果没有再连接中央仓库下载)本地仓库:自己计算机上的一个目录。中央仓库:由Maven团队维护的全球唯一的。远程仓库(私服):一般由公司团队搭建的私有仓库。

2025-06-03 20:46:16 1414 1

原创 Web前端快速入门(Vue、Element、Nginx)

Vue项目-创建方式一:命名行: vue create vue-project01(create后为项目名称)方式二:图形化界面 :vue ui(会调用出Vue的项目管理器)创建方法:创建一个文件夹 --> 双击进入文件夹输入cmd,再输入vue ui调出图形化界面。

2025-05-28 23:11:27 1153

原创 Web前端快速入门(Vue&Ajax,前端与服务器的交互)

35 && age<60">中年人</span>生命周期的八个阶段:每触发一个生命周期的事件,会自动执行一个生命周期的方法(钩子)<span v-else">老年人

2025-05-27 22:58:57 1162

原创 Web前端开发(JS的快速入门)

元素的底部,可改善显示速度外部的JS文件中,只包含JS代码,不包含<script>标签<script>标签不能自闭合<head><title>JS引入方式</title>-- 内部脚本 -->-- 外部脚本 --></head><body>

2025-05-24 15:24:14 1497 2

原创 Web前端开发(HTML、CSS快速入门)

HTML:负责网络页面结构css:负责网络页面表现(页面元素的外观、位置等页面样式,如:颜色、大小等)。javaScript:负责网页的行为(交互效果)。

2025-05-22 22:52:41 1598

原创 MySQL基础

这两个值必须用AND关键字分隔。(WHERE子句的位置,同时使用ORDER BY和WHERE子句时,应该让ORDER BY子句位于WHERE子句之后,否则将会产生错误)(关键字需保证顺序在使用了的情况下ORDER BY位于FROM后,而LIMIN位于ORDER BY后,这样使用的子句不会产生次序错误)从以上的列子而言,仅在多个行具有相同的prod_price值时才对产品按prod_name进行排序。在创建表时,表式设计人员可以指定其中的列是否可以不包含值,一个列不包含值时,称其为包含空值NULL。

2025-05-21 11:02:55 978

原创 msq基础

上述语句用SELECT语句从products表中检索一个名prod_name的列,所需列名在SELECT关键字之后给出,FROM关键字指出从其中检索数据的表名。列的顺序一般是列在表定义中出现的顺序。但当表的模式变化(如添加或删除列)可能会导致顺序的变化。除了指定所需的列外,SELECT语句还可以检索所有列而不必逐个列出它们。SELECT语句返回所有匹配的行,它们可能是指定表中的每个行。LIMIT 5,5指示MySQL返回从行5开始的5行。(返回数据的顺序可能是数据被添加到表中的顺序也可能不是。

2025-05-20 23:15:46 279

原创 聊天室项目总结

msq基础 jdbc 的基本语句(后续还需要继续巩固),实现一个项目的基本结构(前后端的区别、长连接的实现),javafx的基本使用,debug的能力。1.再花一周时间去实现一个创新功能点,比如发送语音和语音通话,然后修改部分bug,优化界面,或者实现我想写却没有完成的地方,例如好友分组,黑名单。4.将分片文件写入临时目录,并且判断是否已经将所有分片进行发送,如果是则合并分片,并且删除临时分片,否则继续接收。3.太过于依赖他人,自己的想法有点少,遇到bug会有退缩,不继续去探究,而去寻求更简单的方式。

2025-05-18 22:54:09 421

原创 25.5.15

sql是一种专门用来与数据库通信的语言。

2025-05-15 23:11:25 496

原创 25.5.13

感觉很久没有写算法题了,先来个滑动队列模板题试试水,就是用双端队列来实现会很方便,拿结构体来记录是第几个数和数的值即可,再定义两个双端队列,一个使他的值单调递增一个使他的值单调递减 使队头元素为最大值或者是最小值,当超过范围k时从队头弹出元素。

2025-05-13 23:13:22 193

原创 关于聊天室数据库建表

​:外键是某个表中的字段(或字段组合),其值必须与另一张表的主键值相匹配。​。

2025-04-10 21:40:09 481

原创 雪花算法、md5加密

它的主要作用是将任意长度的数据转换为 ​。分布式系统唯一ID生成:解决数据库自增ID在分布式环境下的唯一性问题、避免UUID的无序性和性能问题。时间戳部分保证ID全局趋势递增(适合数据库索引优化)、同一结点生成的ID按时间严格递增。可以用来生成用户唯一id,在做聊天室这个项目时我的用户id就是用雪花算法来完成的。雪花算法生成ID是一个64位长整型(但是也可以通过优化简短位数)核心特性:固定长度输出、不可逆性、抗碰撞性、计算速度快。​:非安全场景的快速数据校验(如非敏感文件校验)以下是生成14位的id代码。

2025-04-08 23:19:47 371

原创 ER-图,详情和画法

用户:账号、昵称、密码、性别、邮箱、个签、密码、头像、在线状态。(为了简便性图示上并没有多对多的关系,也没有显示主键的关系)表示实体间的交互(拥有、包含),用菱形表示。实体:用户、群聊、好友、消息、群成员、常用语。表示现实中对象或概念,用矩形表示。描述实体的特征,用椭圆表示。一个用户可以拥有多个群聊。一个用户可以发送多个消息。示例:用户、老师、学生。一个用户可以有多个好友。分为主键(用户id)和非主键(用户昵称)3.定义实体间的关系。

2025-04-06 23:09:11 516

原创 实现聊天室作业

【代码】实现聊天室作业。

2025-04-03 23:18:07 331

原创 正则表达式&最小生成树算法题

正则表达式可以校验字符串是否满足一定的规则,并且来校验数据格式的合法性。

2025-04-01 22:46:51 634

原创 jdbc入门

JDBC概念:就是使用java语言操作关系型数据库的一套APIJDBC本质:官方定义的一套操作所以关系型数据库的规则,即接口JDBC好处:各数据厂商使用相同的接口,java不需要对不同数据库分别开发。

2025-03-30 22:03:19 626

原创 多 线 程

1.能够设置和获取线程名字是因为他们都继承于Object类。多线程应用场景:拷贝、迁移大文件,加载大量的资源文件。并行:在同一时刻人,有多个指令在多个cpu上同时执行。当其他非守护线程执行完毕后,守护线程也会陆续结束。而且三种方法在实验类中获取线程的名字方式不同。直接调用方法并且加true即可设置为守护线程。应用场景:聊天时发送文件,发送文件为守护线程。线程:线程是操作系统能够运行调度的最小单位。并发:有多个指令在单个cpu上交替执行。1.继承Thread类的方式实现。表示把该线程调用到当前线程之前。

2025-03-27 23:14:03 375

原创 接受并反馈

【代码】接受并反馈。

2025-03-27 19:01:45 293

原创 线段树和树状数组

不可差分的信息一般不用树状数组维护,会选择用线段树维护,因为线段树维护的方式思考难度更低。一段范围上统一进行了某种修改操作,可以用O(1)的时间,就把这段范围维护的信息加工出来。满足的信息比如:累加和、最大值、最小值;线段树的优势:用法全面、思考难度低、维护信息类型多(包括可差分信息、不可差分信息)树状数组的劣势:维护信息的类型少、维护某些不可差分的信息时思考难度大并且不易实现。父范围上的某个信,可以用O(1)的时间,从子范围的信息加工得到。线段树非常灵活,维护信息的种类很多,支持范围修改的类型也很多。

2025-03-16 16:12:08 263

原创 关于Java的入门

其它类的个数不限,也可以将main方法写在非public类中,然后指定运行非public类,这样入口方法就是非public的main方法。'\t'制表符:在打印的时候,把前面字符串的长度补齐到8,或者8的整数倍。字符类型需要用单引号引起来(字符类型中只有一个,不管是汉字,英文符号,还是标点符号都可以算)而字符串需要用双引号引起来(即使双引号中只有空格或者什么都没有其都为字符串类型),上面这个格式里面,只有sc是变量名,可以变,其他的都不允许变。在这个格式里面,只有i是变量名,可以变,其他的都不允许变。

2025-03-12 22:54:46 457

原创 堆、优先队列、堆排序

必须是一个完全二叉树(完全二叉树:完全二叉树只允许最后一行不为满,且最后一行必须从左往右排序,最后一行元素之间不可以有间隔)

2025-02-21 19:37:50 631

原创 邻接表、链式前向星

邻接表以点为基本单位进行尾插链式前向星以边为基本单位进行头插空间复杂度差异不大,区别在于对不同图进行操作在遍历不同结点还是寻找特点边可能有不同效率。

2025-02-20 16:50:11 480

空空如也

空空如也

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

TA关注的人

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