自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 基于 Redis 的分布式登录系统实现总结

本文介绍了一个基于SpringBoot+Redis的分布式登录系统,采用Token认证机制实现无状态会话管理。系统核心包括:1)登录拦截器负责Token验证、用户信息恢复和会话刷新;2)验证码发送功能通过Redis存储6位随机码;3)登录方法实现验证码校验、用户查询/创建及Token生成。技术亮点包括分布式支持、安全性设计、用户体验优化和性能提升,完整流程涵盖验证码获取、登录验证到Token维护。系统采用Redis存储会话数据,支持水平扩展,并通过拦截器实现透明的认证逻辑。

2026-03-17 19:59:27 450

原创 SpringBoot图书管理系统开发实战

本文介绍了一个基于SpringBoot+Vue.js的图书管理系统开发实践,重点阐述了后端三大核心功能的实现:1)使用@RestControllerAdvice实现统一异常处理,返回标准化错误响应;2)集成Slf4j日志系统,实现DEBUG/INFO/ERROR分级日志记录;3)采用SpringDoc OpenAPI自动生成Swagger文档。同时详细说明了Redis缓存的集成方案,包括缓存查询策略和对象序列化处理。项目采用前后端分离架构,技术栈包含SpringBoot2.6.6、Vue.js2.6.14、

2026-03-08 13:04:25 344

原创 前后端分离项目中的 /api 前缀设计

本文解析了SpringBoot+Vue项目中代理配置的常见误区,重点澄清了pathRewrite的实际作用。通过/api前缀区分API请求和页面请求,前端统一添加/api前缀,代理服务器通过pathRewrite去除该前缀,确保后端接收干净的原始路径(如/admin/login)。文章通过完整请求流程、代码示例和快递地址类比,说明/api是前后端约定的分界标识,而非后端所需,最终实现前后端路径解耦和职责分离。

2026-03-03 20:38:11 384

原创 SpringBoot + Vue 项目实战 - 今日问题总结与学习笔记

本文总结了Vue+SpringBoot前后端分离项目开发中遇到的典型问题及解决方案。主要包括:1)VueRouter模式切换解决404问题;2)Vuex语法错误排查;3)代理配置处理跨域请求;4)前后端接口匹配问题。文章详细分析了问题现象、原因及解决步骤,并分享了调试技巧、项目结构理解和关键代码片段。通过这些问题处理,作者掌握了前后端联调的核心要点,包括浏览器开发者工具使用、错误排查流程和接口约定规范。最后提出后续学习计划,涵盖权限控制、缓存优化等进阶内容。全文对前后端分离开发实践具有较好的参考价值。

2026-03-03 19:57:49 412

原创 SpringBoot搭建项目调试与问题解决

项目开发常见问题与调试技巧总结 本文总结了项目开发中常见的7类问题及解决方案,包括: MyBatis绑定异常:参数匹配与配置问题 数据库连接失败:驱动兼容性与URL格式问题 前端启动混淆:Vue CLI与HBuilder区别 404错误:接口路径不匹配 返回格式不匹配:统一数据结构 旧文件缓存问题:target目录清理 调试技巧:分层调试、日志输出、工具使用等 核心经验:保持简单配置、先实现再优化、前后端约定优先、分层调试、善用日志工具。开发中应保持良好心态,采用增量开发方法,避免一次性修改过多代码。

2026-02-23 17:15:38 768

原创 使用SpringBoot框架搭建简易的项目

本文介绍了基于SpringBoot+Vue的全栈开发流程。后端采用SpringBoot框架,通过自动配置和起步依赖简化开发,使用MyBatis进行数据库操作,采用三层架构设计(Controller/Service/Dao)。前端使用Vue.js框架和ElementUI组件库,通过Axios与后端交互,并配置代理解决跨域问题。数据库设计包括表结构创建和常用SQL语句实现CRUD操作。项目整合了JWT认证、分页查询、事务管理等核心功能,形成了一套完整的全栈开发解决方案。

2026-02-19 23:09:28 953

原创 SpringWeb

摘要:Spring Web MVC框架解决了原生Servlet开发中的参数接收和响应数据转换问题。核心组件包括前端控制器DispatcherServlet、处理器映射器HandlerMapping和处理器适配器HandlerAdapter。开发时需配置DispatcherServlet并开启注解支持,通过@RestController和@RequestMapping定义控制器及请求映射。提供多种参数接收方式,包括HttpServletRequest、@RequestParam、@RequestBody等。拦

2026-02-02 21:38:06 993

原创 Spring框架(2)

本文介绍了Spring框架集成MyBatis和事务管理的实现方法。首先详细说明了MyBatis与Spring的集成步骤,包括依赖配置、SqlSessionFactory配置以及Mapper接口扫描。其次阐述了Spring AOP的概念及其在日志记录、权限验证和事务管理等方面的应用,并提供了相关注解和配置示例。最后讲解了Spring事务管理的两种实现方式,重点说明了声明式事务的配置方法及常见失效场景。全文涵盖了从基础配置到高级特性的完整实现流程,为开发人员提供了Spring整合MyBatis及事务管理的实用指

2026-01-29 22:24:38 1042

原创 Spring框架(1)

本文介绍了Spring框架的基础知识和核心概念。Spring是一个轻量级的Java开发框架,采用IOC(控制反转)和AOP(面向切面编程)两大核心技术。IOC将对象创建和管理交给Spring容器,开发者只需从容器获取对象;AOP则通过代理在不修改源码的情况下添加功能。文章详细讲解了Spring的两种配置方式:基于XML的bean定义和基于注解的自动装配,包括@Component、@Service等注解的使用。此外还介绍了Spring对数据访问层的管理,如配置数据库连接池。Spring作为一站式框架,简化了企

2026-01-24 14:47:34 713

原创 web前端

本文介绍了Web前端开发的基础知识,重点讲解了HTML的核心概念和常用标签。HTML作为网页的"骨架",负责定义页面结构和内容,包括文本、图片、链接等元素的组织。文章详细解析了HTML文档的基本结构(DOCTYPE、html、head、body标签)、常用标签(标题、段落、列表、超链接、图片等)、表格创建方法以及表单组件的使用技巧(输入框、单选框、复选框等)。通过多个代码示例展示了如何运用HTML标签构建网页内容,并解释了标签属性对元素显示效果的影响,为前端开发入门提供了基础指导。

2025-12-03 17:01:45 728

原创 mybatis

在sql中,执行INSERT语句后,数据库会返回一个整数,表示“本次操作的影响的行数”(即表示成功插入的记录数),因此,Mybatis JDBC等数据访问框架遵循这一约定,insert类型的方法通常返回int类型,用于标识插入是否成功。还将jdbc中的接口进行了封装,为我们提供了常用的类来实现,还可以使用xml或注解方式向数据库发送sql语句,dao dateaccess object (数据访问对象),把这一类的类称为数据访问层类(数据持久层)。//模型类,与数据库的表是对应的,用来封装admin信息。

2025-12-01 18:46:02 910

原创 JDBC(java database connection)

JDBC是Java连接数据库的标准接口,通过DriverManager建立连接,使用Statement或PreparedStatement执行SQL。二者主要区别:PreparedStatement采用预编译和参数绑定,提高可维护性和安全性(防止SQL注入)。文中展示了增删改查的基本实现,包括建立连接、执行SQL和关闭连接。最后提到对JDBC常用操作进行封装以提高代码复用性。

2025-11-22 16:48:45 1034

原创 数据持久化(mysql)

- 外连接--左外连接 不管条件是否成立,都会把左边表中的数据全部查询出来,右边表只会查询出满足条件的数据。-- 外连接--右外连接,不管条件是否成立,都会把右边表中的数据全部查询出来,左边表只会查询出满足条件的数据。-- 第二范式: 要有主键,其他列依赖于主键列,因为主键是唯一的,依赖了主键,这行数据就是唯一的.-- 第三范式: 多表关联时,在一个表中,只关联另一个表的主键即可,不需要关联另一个表的非主键列.-- 项目开发中会用到很多的数据,把不同的数据存储不同的表中(分类存储),

2025-11-17 20:58:19 923

原创 数据持久化 (1)

答案是使用专业的数据存储软件----数据库软件,而且数据库软件还专门提供了一种编程语言,让我们管理数据库中的数据。IO 内存中的数据输出到文件中,做到了数据的持久保存,文件中存储的数据,读到程序后,都是字符串的形式。char(n):存储定长为n个字符,一般用于存储固定长度的字符串,即使只存储一个字符,也会占用n个空间。varchar(n):存储最大上限为n个字符,用于存储变长的字符串,实际存储几个字符,占用几个空间。D:标度,小数点后的长度。学生信息:学号,姓名,性别,生日,电话,身高......

2025-11-12 20:13:00 923

原创 线程的学习

本文介绍了Java多线程编程的核心概念和实现方法。主要内容包括:1)线程与进程的关系,线程是进程内的最小执行单元;2)实现多线程的两种基本方式(继承Thread类和实现Runnable接口)及其代码示例;3)线程常用方法(start、sleep、join等)和生命周期状态转换;4)多线程同步问题及解决方案(synchronized关键字、wait/notify机制);5)第三种创建线程方式Callable接口及其异步特性。文章还对比了wait与sleep、run与start等方法区别,并通过售票和交替打印案

2025-11-06 16:59:22 1012

原创 网络编程的学习

网络通信要素包括IP地址、端口号和通信协议。IP定位主机,端口号标识应用程序(0-65535),TCP协议通过三次握手建立可靠连接,UDP协议则无需连接但不可靠。Java网络编程通过封装底层细节实现数据传输。TCP编程需建立服务器Socket监听端口,客户端Socket连接服务器;UDP编程使用DatagramSocket发送/接收数据包。示例展示了客户端发送小写字母,服务器转为大写返回的功能实现,涉及输入输出流处理。网络通信模型包括应用层、传输层、网络层和数据链路层。

2025-11-02 12:34:41 838

原创 异常的学习

Java异常处理机制概述 异常是程序运行时的非正常情况,Java将各种异常封装为类对象。异常处理有两种方式:程序终止或捕获处理。常见异常包括算术异常、数组越界、数字格式化异常等。 异常处理方法: try-catch-finally:捕获并处理异常,finally确保必要代码执行 throws:声明可能抛出的异常,由调用者处理 throw:主动抛出异常对象 自定义异常:继承Exception类实现业务异常 实例演示了文件操作异常处理、主动抛出异常以及自定义三角形异常验证。通过合理使用异常处理机制,可以提高程序

2025-11-01 19:49:03 932 2

原创 IO流学习

Java IO流操作与文件处理摘要 Java提供了File类用于操作文件和目录,包含获取属性、判断类型、删除等基本方法。IO流分为字节流(InputStream/OutputStream)和字符流(Reader/Writer),按流向分为输入/输出流。字节流适合处理所有文件类型,字符流专门处理文本文件。为提高效率,可使用缓冲流(BufferedInputStream等),其内置8192字节缓冲区减少IO次数。数据处理流(DataInputStream等)支持直接读写基本数据类型和字符串。对象序列化通过实现S

2025-10-28 19:10:50 861

原创 java集合的学习

/替换指定位置的元素 get();在程序开发中,经常需要存储多个数据,现在只能使用数组存储多个数据,但是数组长度在定义后不能够改变,在数组中添加或删除数据较麻烦,因此,在java语言中,就为我们提供了许多不同结构的集合类,它们可以自动根据数据的多少变化长度,可以将不同数据结构(数组,链表)的实现也封装好,我们可以直接使用这些容器进行开发,大大提高了开发效率。//获取指定位置的元素,相较于arrayList.get()效率低,因为它只能从数组的头或尾开始,找到指定位置,无法直接定位到索引。

2025-10-23 18:33:40 1008

原创 常用类(2)

文章摘要: Java中String类是不可变的final类,通过char数组存储内容,提供字符串操作、比较、转换等方法。创建方式有直接赋值(共享常量池)和new创建(独立对象)。对于频繁修改字符串的场景,Java提供了可变字符串类StringBuffer(线程安全)和StringBuilder(非线程安全),它们通过动态扩容数组实现高效操作,支持增删改查等操作。StringBuffer适合多线程环境,StringBuilder则更适用于单线程环境。(149字)

2025-10-16 17:22:29 929

原创 常用类(1)

本文介绍了Java中的常用API类及其使用方法。主要讲解了Object类作为所有类的基类及其toString()和equals()方法的重写规则;Arrays类的常用方法如排序、查找和复制;基本数据类型包装类的用途和自动拆箱/装箱机制,特别强调了Integer类在-128到127之间的缓存机制。文章还涉及自定义排序的实现方法以及包装类与基本类型之间的转换技巧。这些知识点涵盖了Java开发中对基础API类的核心应用场景。

2025-10-11 16:29:12 361

原创 面向对象(2)

本文对面向对象编程的核心概念进行了系统梳理,重点包括:1. this和static关键字的用法与区别;2. 代码块分类及包管理的规范;3. 四种访问权限修饰符的作用范围;4. 面向对象三大特性:封装(信息隐藏)、继承(is-a关系与方法重写规则)、多态(向上转型与instanceof判断);5. final关键字的各种应用场景;6. 接口的定义与实现方式,包含常量、抽象方法、静态方法和默认方法。全文通过具体语法示例,全面阐述了面向对象编程的关键技术要点。

2025-10-08 21:13:16 986

原创 面向对象(1)

本文对比了面向过程(POP)和面向对象(OOP)两种编程思想。面向过程关注操作步骤,以函数为单位,适合简单问题;面向对象以类为组织单位,抽象事物属性和行为,更适合复杂问题。文章详细介绍了类的定义、成员变量和方法,以及对象的创建和使用过程,包括构造方法、方法重载等核心概念。文中指出编程中需要先设计类再创建对象,并解释了对象引用和值传递机制。面向对象具有更好的扩展性和可维护性,是现代主流编程方式,但实际开发中两种思想需结合使用。

2025-09-23 13:05:49 536

原创 数组的学习

本文介绍了Java数组的基本概念和使用方法。主要内容包括:一维数组的定义、创建和两种初始化方式;数组元素的访问和迭代(普通for循环和增强for循环);冒泡排序和选择排序两种排序算法;二维数组的定义、声明和创建方式,以及二维数组的遍历方法。文章重点讲解了数组作为引用数据类型的特点,强调数组长度不可变等特性,并提供了多种数组操作的代码示例,为Java初学者提供了全面的数组使用指南。

2025-09-17 13:48:56 267

原创 Java基础小结

ASCII (美国信息标准码)码表,只能表示英文字母和英文字符,java使用的是Unicode编码,也称为万国码(容纳各个国家的文字字符),同时也兼容ASCII码表的内容,char类型可以进行算术运算,运算时用的是字符在编码表中的整数编号计算的。执行过程:首先计算表达式1,接着执行表达式2,若表达式2的值 = true,则执行循环语句,接着计算表达式3,再判断表达式2的值;5.逻辑运算符:&(逻辑与,不短路) |(逻辑或,不短路) &&(逻辑与) ||(逻辑或)!-: 作用1:作为负号;

2025-09-09 15:57:37 795

原创 Java初学分享

Java是一种面向对象的后端编程语言,由Sun公司于1995年推出,现由Oracle维护。它具有跨平台性(通过JVM实现)、开源、高性能等特点,广泛应用于服务器开发、安卓APP和大数据领域。Java技术体系分为SE(基础)、EE(企业级)和ME(嵌入式)三个平台。其运行机制是先编译为字节码文件,再由不同平台的JVM转换为机器码执行。Java生态丰富,目前主流版本仍为Java8,但每半年会发布新版本。

2025-09-03 20:57:53 245

空空如也

空空如也

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

TA关注的人

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