- 博客(97)
- 收藏
- 关注
原创 做一个AOP注解
Target:注释可以修饰的类型范围枚举类用来声明方法的类型。@Aspect:声明这是一个切面类@Component:将Java普通类声明为Spring的IOC容器组件,用来实现自动实例化、依赖注入、生命周期管理@Role(BeanDefinition.ROLE_INFRASTRUCTURE):声明这是一个AOP底层代理的类,而并非业务类@Aspect@Component/*** 定义切点:拦截所有带有 @AutoAudit 注解的方法*//**
2025-09-21 10:55:11
238
原创 做一个RBAC权限
理解这三个辅助方法,思路就很明确了,我们要读取前端发过来的请求,并通过负载均衡轮询方式请求rbac服务的资源映射关系,之后就能够利用hasPerm方法来判断了,有错的就返回对应的错误信息即可,难点是解析uri。1、writeJson : 渲染json数据到前端,这里用来将错误情况下的信息返回给前端,封装了状态码,响应头等数据。上面的鉴权系统,只能进行鉴权,无法将已经鉴权的用户信息进行保存,因此这里要新建一个拦截器来进行操作。3、hasPerm,检查请求的uri是否是有权限的,鉴权核心。
2025-09-14 17:40:25
613
原创 做一个鉴权系统
本文介绍了基于Spring Cloud Gateway的微服务网关实现方案。主要内容包括:1)数据库设计,采用用户-组-角色-权限-资源五层模型;2)YAML配置文件详细配置,包含服务注册、跨域设置、14个微服务路由规则及负载均衡配置;3)实现白名单机制,通过配置类映射RBAC权限控制;4)全局过滤器AuthFilter的设计,用于请求拦截和权限验证。整套方案实现了动态路由、负载均衡、跨域支持和权限控制等核心功能,为微服务架构提供统一入口和安全保障。
2025-09-07 20:44:28
342
原创 nacos管理配置
摘要:SpringBoot项目集成Nacos配置中心的实现方法,通过添加spring-cloud-starter-alibaba-nacos-config依赖,并在application.yml中配置Nacos服务器地址、命名空间、分组等信息。项目支持热更新,无需重启即可获取配置变更。配置管理仅需通过YAML文件完成,无需额外注解注册全局配置类。
2025-08-25 19:47:46
267
原创 微服务商城构筑其一
本文描述了一个多模块Maven项目结构设计。父项目shoplook2025-parent作为版本管理中心,采用pom打包方式管理公共依赖和插件版本,包含Spring Boot 3.4.8、MyBatis-Plus 3.5.12等核心依赖。项目采用JDK21编译,包含core、spi、api三个子模块。其中api模块作为启动层,继承父项目并引入实际运行所需的依赖(如spring-boot-starter-web、lombok等),其下又细分为category-api和brand-api子模块。这种设计实现了按
2025-08-25 19:39:37
716
原创 项目1其四(配置释义)
本文展示了一个Spring Boot应用的配置信息,主要包含以下内容:服务器端口设置为8080;数据库配置包括MySQL和Redis连接参数;JPA关闭了open-in-view模式;静态资源路径设置为/assets/;MyBatis-Plus的相关配置如日志、驼峰命名转换等;JWT认证的密钥和刷新阈值;文件上传路径设置为D:/upload/。这些配置涵盖了Web服务、数据持久化、缓存、认证和文件处理等核心功能模块的基础设置。
2025-08-21 21:55:47
104
原创 项目1总结其三(图片上传功能)
本文实现了一个图片上传服务,核心逻辑包括:1)通过MultipartFile接收上传文件;2)在指定路径(D:/upload)创建分类目录;3)按"日期+随机数"规则生成唯一文件名;4)保存文件到本地。上传成功后返回相对路径(如/images/type/xxx.jpg),前端通过基础URL拼接该路径即可访问图片。服务通过@Value注解动态配置上传路径,后端采用资源定位机制将URL映射到实际存储位置,无需拦截器参与文件访问流程。整个方案实现了文件上传、存储和访问的完整闭环。
2025-08-21 21:47:45
228
原创 Nacos部署微服务
本文介绍了SpringBoot多模块项目的配置与启动过程。首先完成Nacos等基础配置后,通过startup.cmd以单机模式启动服务。项目采用Maven多模块架构,包含三个子模块(sca-brand-ms、sca-goods-ms等)。POM文件配置了JDK21环境、UTF-8编码,并管理了包括SpringBoot(3.4.8)、SpringCloud(2024.0.2)、Nacos服务发现、MyBatis-Plus(3.5.12)、Lombok等核心依赖。同时配置了Maven编译插件(3.14.0)和S
2025-08-21 17:30:49
658
原创 项目1其二(验证码、jwt)
本文摘要了验证码和JWT登录验证的实现方案。验证码采用Redis存储方式,通过RedisTemplate操作,前端通过特定URL获取验证码图片。JWT部分包含生成工具和校验拦截器,生成工具支持自定义参数,拦截器通过检查请求头中的JWT进行认证。前端使用Pinia管理JWT状态,并通过axios拦截器自动携带JWT请求头,同时处理响应中的新JWT更新。两种方案均提供了完整的代码示例和前后端交互流程。
2025-08-20 23:24:21
271
原创 项目1总结其一
本文介绍了F1经理模拟系统的数据库和后台设计要点。数据库设计遵循三大范式:1NF(列不可分)、2NF(非主键完全依赖主键)、3NF(非主键直接依赖主键),并设计了9张表实现逻辑闭环。系统采用SpringBoot框架,包含17个关键依赖包,如MyBatis、JWT、Redis等。后端设计了统一返回结果类Result处理响应数据,并自定义了F1Exception异常类。整体设计注重规范化、扩展性和开发效率,为F1经理模拟系统奠定坚实基础。
2025-08-20 20:30:09
351
原创 清除表单数据做法
摘要:解决表单数据残留问题,通过配置resetFields方法实现表单重置。由于DOM元素快速响应导致初始状态识别问题,需配合nextTick延迟赋值,该操作对用户体验无影响但能有效解决数据残留。图示展示了具体实现方案,包括表单配置和代码示例。这种方法相比手动清空属性更优雅高效。
2025-08-12 12:00:06
167
原创 Vue得到一行的数据
因为得到的rows其实是多个数组,因此这里查看的是rows[0],可以知道得到是一个Object数组,所以就能直接用,不用写getById这个后端函数了,其实想想就能知道,已经获取全部数据了,为什么修改某项还要查一边呢,不用的,通过toRaw函数获取即可。
2025-08-11 17:55:37
405
原创 跨域解决方案
本文介绍了前后端跨域请求的两种解决方案:1)后端在Controller类上添加@CrossOrigin注解,指定允许跨域的域名;2)前端通过vite配置代理,将API请求自动转发到后端服务器地址。两种方法分别从服务器端和客户端解决了跨域问题,确保前后端分离开发时的正常通信。
2025-08-08 22:00:36
284
原创 创建MyBatis-Plus版的后端查询项目
本文介绍了基于SpringBoot和MyBatis-Plus的技术实现方案。首先配置了Maven依赖,包括SpringBoot Web、MyBatis-Plus、MySQL驱动等关键组件。其次提供了YAML配置文件,包含数据库连接、MyBatis-Plus参数等设置。在代码结构方面,展示了实体类设计、公共字段封装、响应封装类和时间范围处理类。最后详细说明了分层实现:DAO层使用MyBatis-Plus的BaseMapper和分页配置,Service层定义基础接口及实现,API层提供Restful接口。整个方
2025-08-08 20:58:13
356
原创 创建一个Vue3项目
本文介绍了使用pnpm创建Vite项目的基本流程:1)安装Node.js环境;2)通过npm全局安装pnpm;3)使用pnpm create命令创建Vite项目,包含选择框架、语言等交互步骤;4)项目配置详解,包括vite.config.js主配置文件的各项设置说明。文章配有操作截图辅助说明各步骤,帮助开发者快速搭建基于Vite的前端开发环境。
2025-08-08 20:32:00
284
原创 做一个Redis缓存
本文介绍了Spring Boot集成Redis缓存的配置与使用。主要包括:1)通过@EnableCaching开启缓存;2)关闭二级缓存以避免冲突;3)配置缓存名称和序列化要求(需实现Serializable);4)使用@Cacheable、@CacheEvict等注解进行缓存管理;5)通过RedisTemplate手动操作缓存数据。强调缓存应设置在合理位置(如查询类别而非具体实例),并注意数据变更时的更新/清除操作。两种方式(注解与RedisTemplate)均可实现缓存功能,后者更灵活直接。
2025-08-07 20:25:24
311
原创 SpringBoot中的单例注入方式
实现ApplicationContextAware接口,并重写其setApplicationContext,就可以获取SpringBoot应用的上下文ApplicationContext类的实例,利用该实例能够创建唯一的实例,且被SpringBoot容器管理着。可以点击alt+insert,选择Bean注入,选择你要注入的属性,会生成对应的构造方法式的,spring官方最推荐。在属性的setter方法上写上Autowired注解,灵活,推荐。在要进行注入的成员属性上面加上该注解,并不优雅灵活,不推荐。
2025-08-07 20:05:24
333
原创 MyBatis增删改、RESTful API 风格、SpringAOP
本文摘要介绍了后端开发中的几个核心概念:1) 增删改操作的SQL编写方式,使用MyBatis的XML标签实现;2) RESTful API设计原则,包括HTTP方法语义和@RestController注解;3) Spring AOP的实现原理(动态代理)和使用步骤;4) 事务管理,重点说明ACID特性、声明式事务@Transactional注解及其隔离级别和传播行为。这些技术点共同构成了现代Java后端开发的基础架构要素,用于实现数据操作、接口设计、横切关注点处理和事务控制等功能。
2025-08-06 17:23:10
431
原创 初始MyBatis
MyBatis作为轻量级ORM框架,通过半自动化方式实现对象关系映射。Spring Boot整合MyBatis主要步骤包括添加依赖、配置数据源和Mapper路径、编写Mapper接口及XML映射文件。动态SQL支持OGNL表达式,推荐使用#{}预编译防止SQL注入。关联查询可通过ResultMap配置一对一和一对多关系,并使用延迟加载和一级缓存优化N+1查询问题。MyBatis提供了灵活的SQL编写方式,同时保持代码安全性和性能优化能力。
2025-08-05 16:58:20
1073
原创 初识SpringBoot
本文系统梳理了Java技术栈的演进历程,从SSH到SpringBoot的框架变迁,重点分析了SpringBoot的核心优势。文章详细阐述了SpringBoot的启动器机制、自动装配原理,以及依赖注入的最佳实践(推荐构造器注入)。在Controller层,提供了路由映射优化方案和参数绑定技巧,并强调RESTful响应标准化和全局异常处理的重要性。最后指出SpringBoot在微服务中的关键角色,以及IoC、DI等核心设计原则。全文突出SpringBoot;约定优于配置;的理念
2025-08-04 17:01:41
663
原创 单例生产工厂
这是一个简单的Java Bean工厂实现,通过静态Map缓存对象实例。使用泛型方法getBean()按类类型获取实例:若缓存中存在则直接返回,否则通过反射创建新实例并缓存。采用单例模式确保每个类只有一个实例,线程安全由HashMap保证。异常处理将反射异常转换为运行时异常。适合轻量级IoC场景,但不支持依赖注入等高级特性。
2025-07-30 20:45:58
82
原创 Dao层逻辑
文章摘要:介绍了如何使用JdbcTemplate进行数据库操作,包括获取JdbcTemplate实例和两种查询数据的方式。通过GlobalDBInfo类封装数据库连接信息,使用静态内部类Holder实现单例DataSource。对于简单查询直接使用queryForObject方法,需要映射到自定义类时则使用BeanPropertyRowMapper配合query方法。代码示例展示了完整的配置和使用过程,包括数据库URL、用户名密码等连接参数。
2025-07-30 20:43:37
189
原创 SQL 查询语法笔记
SQL查询语法摘要 本文总结了SQL查询的核心语法,包括: 基础查询:SELECT语句、别名、分页(LIMIT)、条件筛选(WHERE)及模糊查询(LIKE) 分组查询:GROUP BY分组、聚合函数(COUNT/AVG等)及HAVING筛选 子查询:标量/表/WHERE子查询,支持IN/EXISTS/ALL/ANY等操作 表连接:INNER JOIN内连接、LEFT/RIGHT外连接 重点功能: 分页使用LIMIT配合OFFSET 空值判断需用IS NULL/NOT NULL 分组后筛选需用HAVING而
2025-07-28 19:27:32
813
原创 数据库基础概念梳理
本文介绍了数据库的核心概念和SQL语言特性。主要内容包括:1)数据存储类型,分为结构化表和非结构化数据;2)SQL的核心优势,重点阐述了数据类型约束、自增长、主键等7种约束机制;3)数据库高级对象,如索引、视图、存储过程等功能;4)SQL语言分类,包含DML、DQL、DDL和DCL四大类操作语句;5)注意事项,强调命名规范、表关系设计和DBA角色。文章系统梳理了数据库管理和SQL操作的关键要素,为数据库学习提供了结构化框架。
2025-07-28 11:38:12
828
原创 从零做起的学生信息查询网页
本文介绍了从零开始搭建学生信息查询网页的开发过程。首先创建Maven项目并配置必要的依赖,包括Servlet、JSP、数据库连接等组件。然后构建项目目录结构,包括前端JSP页面和后端Service、DAO层。接着实现Servlet控制器处理请求,使用Ajax异步获取数据并动态渲染表格。文章详细展示了实体类Student的定义,以及Service层的接口和实现,为后续分页查询功能打下基础。整个项目采用分层架构,为开发者提供了一个完整的Java Web应用开发案例。
2025-07-25 21:23:09
1159
原创 前端之jQuery
常量与变量数据类型表达式流程控制数组 (Array)函数 (Function)对象 (Object)起手式 (Ready Event) 函数与选择器jQuery 对象特性jQuery 对象 vs DOM 对象常用方法 (Getter/Setter)筛选遍历事件处理其他要点
2025-07-22 20:53:48
814
原创 前端之CSS
解决父元素高度塌陷(因浮动元素脱离文档流导致父元素高度计算为0)问题。HTML 页面设计与实现的过程,本质就是布局的过程。CSS 将每个元素视为一个矩形盒子 (Box)精确控制元素在页面中的位置,打破文档流规则。用于指定 CSS 规则应用的目标元素。在 CSS3 前兼容):规范要求使用双冒号。
2025-07-18 20:35:28
1066
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅