- 博客(44)
- 收藏
- 关注
原创 关于分布式锁的一些考虑
使用RedisMutexRedisSETNXEXPIRENXDeadlockRedisPX锁续期/看门狗DELDELUUIDDELLuaReentrancyRedisRedisHINCRBYRedisLuaEXPIREPEXPIRERedisRedlockRedisRedisN/2 + 1RedisLuaRedisRedisLuaRedlock。
2025-06-30 11:34:27
831
原创 项目集成Spring Security授权部分
Component@Autowired@Autowired@Override// 获取 HttpServletRequest,提取请求头中的 token// 使用 JWT 工具类解析 token,获取 Claims// 从 token 中解析出当前用户信息,并转为 UserVo 对象// 从 Redis 缓存中获取该用户的访问权限 URL 列表// 构造当前请求的标识,例如 "GET/nursing_project/**"
2025-02-02 16:59:40
2381
原创 项目集成Spring Security认证部分
在Spring Security认证与授权集成中,主要分为用户登录认证、JWT Token生成与校验以及权限管理等部分。
2025-02-01 16:29:22
1269
5
原创 资源管理模块集成Spring Cache
SpringCache是Spring提供的缓存抽象框架,它通过注解的方式简化了缓存的使用,支持多种缓存实现(如Redis、Ehcache等)。@Cacheable在方法执行前先查询缓存中是否有数据,如果有数据,则直接返回缓存数据;如果没有缓存数据,调用方法并将方法返回值放到缓存中:用于清除缓存,保证缓存数据的实时性。@Caching:支持组合多种缓存操作。@CachePut:更新缓存但不影响方法的实际调用。通过与Redis集成,SpringCache可以实现高效、灵活的分布式缓存管理。
2025-01-19 17:34:26
591
原创 Spring Bean 管理学习
Spring 的 Bean 管理提供了极大的灵活性,通过 IOC容器,我们可以轻松实现 Bean 的声明与生命周期控制。获取 Bean:推荐优先使用自动注入方式简化代码。作用域管理:大部分场景下使用单例即可,特殊需求可根据情况选择其他作用域。第三方 Bean:通过@Bean和配置类管理,方便统一配置与维护。
2024-12-29 19:47:10
668
原创 登录时的校验Token接口开发(Interceptor)
校验 Token后端通过拦截请求,从请求头中提取 Token。使用工具类JwtUtil解析 Token,验证其合法性、有效性。将解析后的用户身份信息存入,供业务层使用。ThreadLocal 的应用使用工具类隔离多线程环境下的用户数据,避免数据冲突。在请求完成后,清理中的用户信息,防止内存泄漏。拦截器的灵活性配置了拦截路径与排除路径,确保仅对需要校验的接口进行拦截(例如,登录接口不需要校验 Token)。
2024-12-28 14:37:10
1147
原创 微信登录接口开发
类职责主要实现了与微信服务端的交互功能,包括获取用户的openid、手机号和接口调用凭证。设计特点抽取公共参数封装方法,提高代码复用性。使用cn.hutool工具包简化 HTTP 请求和 JSON 数据解析,提高开发效率。关键点每个微信接口调用均需检查响应中的errcode,确保异常能够及时处理。返回值格式和 JSON 数据解析严格依据微信接口文档。以下是类及相关配置文件的详细解读。该类的主要职责是处理用户的微信登录业务逻辑,包括从微信获取用户信息、数据库的增删改查,以及生成 JWT 令牌。
2024-12-28 14:01:52
1632
原创 Exp 智能协同管理系统-部门管理前端页面开发
使用响应式数据结合组件,构建了直观、友好的用户界面。数据接口的封装简化了与后端的交互,减少冗余代码。表单校验与弹框功能有效提升了用户操作体验。
2024-12-10 22:24:25
1355
原创 Exp 智能协同管理系统前端首页框架开发
通过本案例的学习,我们完成了智能学习辅助系统的前端开发,实现了包括布局设计、导航菜单配置以及路由管理在内的核心功能。这种基于组件化的开发方式具有高复用性和可维护性。
2024-12-09 22:26:58
1037
原创 SpringBoot 自动配置原理学习
SpringBoot 的自动配置机制可以在 Spring 容器启动后,将配置类和 Bean 对象自动加载到 IoC 容器中,无需开发者手动声明。这样:简化了开发流程。避免了重复性配置代码。自动配置的核心自动配置通过和实现。避免了大量重复的手动配置,简化了开发。实现方式通过或@Import将第三方 Bean 加载到 IoC 容器。推荐方案对于复杂项目,优先使用@Import及其衍生方式,如@EnableXxx。对于自动配置类,合理使用注解动态加载配置。
2024-12-06 20:00:42
894
原创 SpringBoot 配置优先级学习
Java 系统属性使用-Dxxx=xxx格式设置。命令行参数使用--xxx=xxx格式设置。SpringBoot 提供了灵活多样的配置方式,同时通过优先级规则避免配置冲突。在实际开发中,建议:在项目开发阶段,优先使用文件管理配置。在部署或测试阶段,根据需要通过 Java 系统属性或命令行参数临时覆盖配置。熟悉并遵循优先级规则,确保项目在不同环境中的配置一致性与灵活性。
2024-12-04 14:14:34
747
原创 部门管理系统Spring AOP实现日志记录接口案例开发
高内聚低耦合:通过 AOP 实现日志功能,与业务代码解耦,提高代码复用性和可维护性。灵活扩展:使用自定义注解@Log标注需要记录日志的方法,方便灵活扩展。操作全面:日志记录内容详尽,包括操作人、操作时间、类名、方法名、参数、返回值及耗时。
2024-12-04 14:07:02
797
原创 JWT、Cookie 与 Session 对比学习
用户打开浏览器,访问 Web 服务器的资源时,建立的会话从建立到断开连接的整个过程。:一种维持浏览器状态的方法,服务端需要识别多次请求是否来自同一用户,以便在同一次会话的多次请求中共享数据。
2024-12-03 21:37:39
454
原创 部门管理系统Spring 登录校验模块开发学习
本登录校验模块基于 Spring 和 MyBatis 实现了一个完整的用户登录流程。通过使用 JWT 令牌技术,不仅提升了系统的安全性,还提供了较高的扩展性。
2024-12-03 21:15:03
973
原创 深入理解Spring AOP 编程之切入点表达式详解
所有业务方法名在命名时尽量规范,方便切入点表达式快速匹配。描述切入点方法通常基于接口描述,而不是直接描述实现类,增强拓展性。在满足业务需要的前提下,尽量缩小切入点的匹配范围。如:包名尽量不使用..,使用匹配单个包。切入点表达式的核心作用用于定义 AOP 的目标范围。支持多种匹配方式(精确匹配、通配符匹配、基于注解等)。结合逻辑运算符,可实现复杂的业务逻辑需求。常见场景与注意事项精确匹配适用于特定方法的切入逻辑。包与类的通配符匹配适用于模块级别的切面应用。
2024-12-01 21:01:41
2516
原创 部门员工管理-员工职位人数统计
在部门员工管理模块中,需要统计各职位的员工人数,并提供一个接口供前端调用,返回的数据包括:职位名称列表。对应职位人数列表。目标是实现从数据库查询职位人数统计数据,并以结构化数据形式返回,便于前端直接展示。功能解读:类注解::由 Lombok 提供,自动生成 getter/setter 方法、 方法、 和 方法。:生成无参构造方法。:生成包含所有字段的有参构造方法。字段::存储职位名称的列表。:存储职位对应人数的列表。用途: 用于封装职位统计数据,包括职位名称和对应人数,作为控制层接口返回的数据对象
2024-11-30 20:05:19
1188
原创 跨子网通信的具体流程
那我的理解就是tcp,ip都是在第一个发送的设备处就可以包好,然后如果接受方和自己不在一个子网中,就包上默认网关的mac发送过去,默认网关接收到之后去掉mac头部尾部,然后在路由表里查找有没有接收方的ip,如果有的话就arp广播找到mac地址包上之后发过去。
2024-11-26 21:48:29
1031
原创 部门员工管理-修改员工功能实现
根据员工 ID 查询详细信息,包括基本信息和工作经历。更新员工的基本信息。更新员工的工作经历信息,逻辑为:先删除旧的工作经历,再插入新的工作经历。接口文档:根据接口文档可知,后端只需要向前端传递修改成功的信息即可,无data返回。
2024-11-26 18:46:16
1004
原创 部门员工管理-删除员工功能实现
技术点控制层使用和接收删除请求。服务层使用确保操作的事务一致性。数据层使用 MyBatis 动态 SQL (标签) 实现批量删除。事务管理的优势确保删除操作的所有相关数据要么全部删除,要么完全保留。如果在删除操作中出现异常,事务机制将回滚所有已完成的操作,避免数据不一致。
2024-11-26 18:13:56
560
原创 部门员工管理-新增员工功能实现
分层实现控制层接收数据,服务层实现业务逻辑,Mapper 层操作数据库。事务管理确保新增员工基本信息与工作经历的操作一致性。批量插入利用 MyBatis 的动态生成批量插入 SQL,提升性能。
2024-11-24 15:11:12
706
原创 (条件分页查询)部门员工管理-员工列表查询功能扩展
在原有分页查询的基础上,改进为条件分页查询功能。通过在 SQL 查询中添加条件筛选逻辑,用户可以按姓名、性别和入职日期等条件进行筛选,进一步提升查询的灵活性。条件筛选需求:技术实现需求:PageBean对象:Controller层: :自动生成日志对象,方便使用 打印日志。 :定义基础路径 。 :组合注解,返回 JSON 数据。 :自动注入服务层对象 。 :将 方法映射为 GET 请求。 :接收分页参数, 设置默认值。 核心逻辑: 接收分页参数并打印
2024-11-24 14:40:14
784
原创 部门员工管理-员工列表查询功能实现
分页显示员工信息:数据动态加载:支持总记录数统计:按照 MVC 分层架构 的设计原则,分页查询功能需要从前端到后端各层协作完成:前端需求:Controller层需求:Service层需求:Mapper层需求:数据表结构:查询需求:PageBean对象:Controller层: :自动生成日志对象,方便使用 打印日志。 :定义基础路径 。 :组合注解,返回 JSON 数据。 :自动注入服务层对象 。 :将 方法映射为 GET 请求。 :接收分页参数, 设置默认值。
2024-11-22 12:23:21
1292
原创 部门管理系统功能完善(删除部门、添加部门、根据 ID 查询部门 和 修改部门)
通过以上功能实现,完善了删除部门添加部门查询部门和修改部门的完整流程。通过 Spring Boot 的分层架构(Controller、Service、Mapper)和 MyBatis 的注解,标准且简洁实现了这几个功能。
2024-11-20 22:27:19
2255
原创 部门信息管理系统Dao层优化(数据库)
上述改造的三层分别定义了数据访问层(Mapper)、业务逻辑层(Service)和控制层(Controller),实现了一个完整的查询所有部门信息功能的流程。
2024-11-20 21:54:58
837
原创 MyBatis 入门学习总结
MyBatis 是一款优秀的持久层框架,用于简化 Java 应用程序与数据库之间的交互。灵活性:开发者直接控制 SQL,适合复杂查询。高效性:轻量级框架,性能开销小。简单易用:配置简单,入门成本低。
2024-11-19 15:37:04
812
原创 JBDC入门学习
jdbc是 Java 提供的一套用于操作数据库的 API。通过 JDBC,开发者可以使用 Java 代码与各种关系型数据库进行交互,包括执行 SQL 查询、更新数据以及管理事务。
2024-11-19 15:05:48
990
原创 SQL语句基础--深入理解 DQL(数据查询语言)
是 SQL 语言的一个子集,用于从数据库中查询数据。DQL 的核心是SELECT语句,通过指定查询条件、排序、分组等操作,用户可以高效地从数据库中提取所需数据。
2024-11-18 17:04:38
1204
原创 SQL 语句基础与实用技巧(DDL DML)
在关系型数据库中,SQL 语言根据功能可以分为多个子集,其中DDL(Data Definition Language,数据定义语言)和DML(Data Manipulation Language,数据操作语言)是最常用的两部分
2024-11-18 16:33:54
1276
原创 (IOC&DI)部门信息管理功能分层解耦优化
分层解耦DAO、Service、Controller 三层通过接口实现解耦,层与层之间仅依赖接口而非具体实现。使用注解简化开发@Autowired:实现依赖注入,提升代码的可读性和扩展性。@Service和:明确组件职责,方便 Spring 容器管理。可扩展性提升面向接口编程使得后续更换实现(如切换到数据库存储)变得简单。
2024-11-16 12:17:49
1256
原创 部门信息管理功能实现
实现了一个简易的部门信息管理系统简单功能实现,通过三层架构(DAO、Service、Controller),读取资源文件中的部门信息并以 REST API 的形式提供给前端。
2024-11-16 10:21:21
595
原创 Vua学习入门案例
这是是一个Vue 3的入门学习案例,实现了一个用户信息查询系统,展示了如何在前端应用中实现动态数据绑定(v-model)、条件渲染和事件监听。
2024-11-12 23:52:51
697
原创 (Java)动态代理学习案例
性能监控:动态代理在方法执行前后添加了时间记录功能,便于监控方法的执行性能,相当于添加了新功能解耦代码:将业务逻辑与附加功能分离,动态代理通过拦截业务方法的调用,实现了附加功能的 无侵入式扩展(AOP)。增强扩展性:新增功能无需修改业务逻辑代码,只需在代理类中修改拦截逻辑即可。
2024-11-10 17:04:20
498
原创 (JAVA)基于TCP通信多人聊天系统
该项目是一个基于 TCP 协议的多人聊天系统。服务器通过监听客户端的连接,每个客户端连接后,服务器为其创建一个独立的线程来处理通信。服务器维护一个在线客户端的列表,当某个客户端发送消息时,服务器会将该消息转发给所有其他在线客户端。客户端通过Socket连接服务器,并在一个独立的线程中不断读取来自服务器的转发消息。项目实现了基本的多人聊天功能,展示了 TCP 通信和多线程的应用,记录一个入门学习案例。
2024-11-09 18:50:27
1042
原创 力扣(LeetCode)106. 从中序与后序遍历序列构造二叉树
虽然是中等难度,但我觉得这道题不好写,可以作为按照特定规则递归法构造二叉树的经典题目来好好学习。
2024-11-09 14:31:31
295
原创 TCP入门通信程序(JAVA)
该模型展示了TCP通信的基本原理,客户端负责发送数据,服务器负责接收并处理数据。是一个非常好的TCP入门学习案例。
2024-11-08 23:07:24
283
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅