- 博客(570)
- 资源 (3)
- 收藏
- 关注
原创 C盘拯救助手
摘要: save-c 是一个用于迁移 C 盘目录到 D 盘并创建软链接的工具,可安全释放 C 盘空间。支持交互式或命令行操作,提供模拟运行(--dry-run)和强制跳过确认(--force)选项,支持自定义 D 盘目标路径。包含扫描模式批量迁移目录,并可通过 GUI 配置关键参数。工具内置多重安全保护:仅允许操作 C 盘、禁止迁移系统目录、失败自动回滚,并需管理员权限执行。安装方式为 pip install save-c,开源协议为 Apache-2.0。 (字数:150)
2026-06-11 14:39:11
201
原创 TypeScript 学习笔记 2:类型缩小
TypeScript 类型缩小技术总结 本文介绍了 TypeScript 中多种类型缩小(Type Narrowing)的技术方法: 类型守卫:使用typeof运算符判断基础类型,注意null会被识别为object 真值缩小:利用 JavaScript 的隐式转换规则,空值(0、""、null等)会被转为false 相等缩小:通过===和!==比较可精确缩小类型范围 in操作符:检查对象属性存在性来区分不同类型 instanceof:判断对象原型链实现类型区分 赋值缩小:变量重新赋值时T
2026-02-28 08:00:00
283
原创 TypeScript 学习笔记 1:类型
本文介绍了TypeScript的基本类型系统,包括基本类型(字符串、数字、布尔)、数组、any类型的使用场景。详细讲解了函数参数和返回值的类型声明,对象类型的定义方式以及可选属性的处理。重点阐述了联合类型的概念和使用方法,以及如何通过类型判断缩小范围。最后比较了type和interface两种定义类型别名的方式,并介绍了类型断言的用法。文章通过大量代码示例展示了TypeScript强大的类型系统,为开发者提供了类型安全的编程保障。
2026-02-27 08:25:00
421
原创 Python 项目版本控制
本文介绍了Python项目中版本控制的最佳实践。针对传统pyproject.toml文件在安装后不可访问的问题,推荐使用setuptools-scm工具动态生成版本号。通过Git标签管理版本,在构建时自动生成包含版本信息的_version.py文件,程序运行时即可轻松获取版本号。该方法解决了开发环境和安装环境版本号获取不一致的问题,适用于需要显示版本号的Python项目。
2026-02-06 08:33:27
460
原创 NACOS 二次开发指南
Nacos二次开发简明指南 本文介绍了Nacos 2.2.2版本的二次开发流程。内容包括: 代码获取与分支管理:通过git获取代码并基于2.2.2版本创建开发分支 前端开发:使用React构建,可通过npm启动和编译项目 后端开发:基于SpringBoot,详细说明了代码风格规范要求(如注释规则、命名规范等) 项目打包:介绍了打包配置选项和注意事项 特别强调了开发过程中需要遵守的代码规范,包括注释格式、导入声明、命名约定等细节要求,这些规范会影响项目的成功构建。
2026-02-03 15:27:41
484
原创 前端代码断点调试
本文介绍了如何在Vue前端项目中使用VSCode进行断点调试,替代低效的console.log方式。通过配置VSCode的JavaScript Debugger插件,在.vscode/launch.json中设置Chrome调试参数,包括项目URL和源文件映射。启动调试后,可以在JS/TS代码中添加断点,通过浏览器操作触发断点,并利用VSCode的调试界面查看变量、调用堆栈等信息,实现类似后端代码的步进调试功能。这种方法显著提升了前端开发调试效率。
2026-01-20 09:46:53
482
原创 Spring Security 学习笔记 4:用户/密码认证
本文介绍了使用Spring Security和JWT实现用户名/密码认证的方案。主要内容包括:1) 创建MySQL用户表存储用户名、加密密码和启用状态;2) 配置数据库连接和Redis;3) 实现Spring Security核心配置,包括安全过滤链、认证管理器和密码编码器;4) 采用无状态会话管理,禁用CSRF保护,并添加JWT过滤器。该方案支持多种密码哈希算法,可通过DelegatingPasswordEncoder灵活升级加密方式,适用于前后端分离系统的服务端认证实现。
2026-01-19 12:11:13
924
原创 Spring Security 学习笔记 3:认证模型
本文介绍了Spring Security的核心认证模型,重点讲解了SecurityContextHolder、SecurityContext、Authentication等核心组件及其交互关系。文章详细阐述了Authentication接口的双重用途,包括作为认证输入和表示已认证用户,以及其包含的principal、credentials和authorities等关键信息。同时,分析了AuthenticationManager、ProviderManager和AuthenticationProvider的层
2026-01-19 11:29:54
971
原创 Spring Security 学习笔记 2:架构
Spring Security 架构与过滤器机制 Spring Security 基于 Servlet Filters 实现安全控制,核心组件包括: DelegatingFilterProxy:桥接 Spring 容器与 Servlet 容器 FilterChainProxy:管理多个安全过滤器链 SecurityFilterChain:包含有序的安全过滤器,按请求路径匹配执行 过滤器链中的过滤器执行顺序至关重要,认证过滤器需在授权过滤器之前。可通过 HttpSecurity 的 addFilterBefo
2026-01-19 11:29:14
769
原创 Spring Security 学习笔记 1:快速开始
本文介绍了如何使用Spring Security快速构建一个简单的安全Web应用。首先创建基础Spring Boot项目并添加Thymeleaf模板页面,然后通过Spring Security配置保护特定页面(如/hello)需要登录访问。关键步骤包括:1)创建登录页面和处理表单;2)配置SecurityFilterChain定义访问权限;3)使用内存用户存储和BCrypt密码加密;4)集成Thymeleaf安全标签显示用户信息。最终实现未授权访问自动跳转登录页面的功能,演示了Spring Security
2026-01-19 11:28:28
745
原创 Netty 简易指南
Netty 简易示例指南 本文介绍了两个Netty基础示例的实现:回写服务器和时间服务器。回写服务器展示了如何接收并处理客户端消息,支持丢弃、打印或原样返回消息的功能。时间服务器则演示了主动发送当前时间给客户端并关闭连接的场景。示例代码展示了Netty的核心组件使用方式,包括事件循环组(EventLoopGroup)、通道处理器(ChannelHandler)和管道(Pipeline)配置。通过Maven项目实现,这两个示例可以帮助开发者快速理解Netty的基本工作原理和开发模式。
2025-12-19 18:00:48
321
原创 JPA 学习笔记 8:与数据库交互
JPA与Hibernate核心概念摘要 本文介绍了JPA和Hibernate中与数据库交互的核心机制。主要内容包括: 持久化上下文:作为一级缓存,管理实体实例的三种状态(瞬时/持久/分离),确保数据一致性和自动脏检查,提高性能但需注意线程安全限制。 会话管理:演示了EntityManager/Session的创建和关闭方式,强调JPA标准与Hibernate原生API的区别。 事务处理:对比了传统事务管理方式与Hibernate提供的简洁API(inTransaction/fromTransaction),
2025-12-17 08:26:24
842
原创 JPA 学习笔记 7:高级内容
JPA高级特性摘要 本文介绍了JPA/Hibernate的一些高级特性: @Basic注解:用于标记持久化属性,通常可省略。可用于设置属性非NULL约束,推荐结合Hibernate Validator的@NotNull使用。 乐观锁实现:通过@Version注解添加版本控制字段,防止并发修改导致的数据覆盖问题。 枚举类型处理: @Enumerated默认存储枚举ordinal值 可通过EnumType.STRING存储枚举名称 也可自定义属性值存储 实体继承: 根实体需包含ID属性 可用于定义公共字段(如创
2025-12-17 08:25:05
629
原创 JPA 学习笔记 6:Fenix
JPA动态查询框架Fenix入门指南 本文介绍了如何在Spring Boot项目中整合Fenix框架实现JPA动态查询。主要内容包括: 基础配置:添加Fenix依赖和基础YAML配置,设置XML文件扫描路径和调试模式。 XML动态SQL:通过@QueryFenix注解将Repository方法映射到XML中定义的动态JPQL语句,支持条件判断和参数绑定。 Provider方式:使用SqlProvider类以编程方式构建动态查询条件。 增强接口:通过FenixJpaSpecificationExecutor接
2025-10-20 09:00:00
956
原创 JPA 学习笔记 5:Spring Data JPA
本文介绍了Spring Data JPA的基本使用,包括快速入门、Repository接口继承体系、自定义查询(@Query注解)以及分页和排序功能。主要内容有:1)通过继承Repository接口创建数据访问层;2)使用@Query注解实现自定义JPQL查询和原生SQL查询;3)利用@Modifying注解执行更新操作;4)通过CrudRepository和PagingAndSortingRepository接口获得基本的CRUD和分页功能。文章还提供了实体类定义、存储库接口实现和测试用例的完整代码示例。
2025-10-19 09:00:00
659
原创 JPA 学习笔记 4:JPQL
本文介绍了JPA中的二级缓存和JPQL查询语言。在二级缓存部分,说明了如何通过添加依赖、配置文件和注解来启用Hibernate二级缓存,减少跨Session的重复查询。JPQL部分则展示了基础的查询语法和使用方式,包括位置参数和命名参数的绑定,以及如何简化SELECT语句和部分属性查询。文章提供了完整的代码示例和配置说明,帮助开发者理解JPA的缓存机制和查询语言特性。
2025-10-18 09:00:00
775
原创 JPA 学习笔记 3:映射关联关系
这篇JPA学习笔记主要讲解了三种关联关系的映射方式: 单向多对一关联:通过@ManyToOne和@JoinColumn注解实现,强调先保存主表实体再保存从表实体的优化策略,以及查询、修改和删除操作。 单向一对多关联:使用@OneToMany注解,分析了新增时会产生额外UPDATE语句,默认懒加载查询,以及删除时的级联行为。 双向一对多关联:简要提及通过mappedBy属性实现双向关联。 文章通过具体代码示例展示了各种关联关系的实现方式,并详细说明了每种操作(增删改查)的底层SQL执行逻辑和优化建议。
2025-10-17 09:00:00
708
原创 JPA 学习笔记 2:API
本文介绍了JPA API的核心使用方法,包括通过Persistence获取EntityManagerFactory,以及EntityManager的关键操作。主要内容包括:使用find/getReference查询数据(后者采用懒加载)、persist保存数据、remove删除数据以及merge方法处理不同状态的实体对象。文中通过代码示例展示了各种API的使用场景和注意事项,如getReference的代理对象特性、persist对主键的限制、remove只能删除持久态实体等。merge方法根据实体状态的不
2025-10-16 09:00:00
1788
原创 JPA 学习笔记 1:开始
这篇JPA学习笔记介绍了JPA的基础配置和使用方法。主要内容包括: 快速开始:创建Maven项目并添加JPA相关依赖(Hibernate、MySQL驱动等) 配置persistence.xml文件,定义数据源和Hibernate属性 创建实体类Customer,使用@Entity、@Table、@Id、@GeneratedValue等注解 演示基本的CRUD操作流程 介绍常用注解: @Transient标记非持久化字段 @Temporal指定日期类型(已废弃,推荐使用LocalDate) @TableGen
2025-10-15 09:11:24
852
原创 Vue3 学习笔记 8:其它 API
本文介绍了 Vue3 中几个实用的 API 及其应用场景: ShallowRef/ShallowReactive:仅处理浅层响应式,适合不需要深度响应式的场景,可提升性能 Readonly/ShallowReadonly:创建只读响应式数据,前者全部只读,后者仅顶层只读 ToRaw:获取响应式数据的原始普通对象,适合需要传递给第三方库的场景 MarkRaw:标记对象为不可响应式,避免被转为响应式数据 这些 API 提供了更精细的响应式控制能力,开发者可根据实际需求选择使用,在保证功能的同时优化性能。
2025-10-11 09:00:00
682
原创 Vue3 学习笔记 7:组件通信
本文总结了 Vue3 中的组件通信方式:1) props 实现父子组件数据传递;2) 自定义事件实现子向父通信;3) mitt 库实现任意组件间通信;4) v-model 实现组件双向数据绑定。详细介绍了每种方式的具体实现方法,包括 props 传参、defineEmits 定义事件、mitt 的基本用法,以及 v-model 的实现原理和自定义命名方式。这些方法覆盖了 Vue3 中常见的组件通信需求。
2025-10-10 09:00:00
747
原创 Vue3 学习笔记 5:路由
本文介绍了Vue3路由的基本配置与使用。主要内容包括:安装vue-router并创建路由文件,配置路由规则和对应组件;在App.vue中使用RouterView和RouterLink实现路由跳转;通过active-class实现导航高亮效果;以及两种路由器工作模式(History和Hash)的区别。文章通过完整代码示例展示了如何实现一个包含标题、导航栏和内容展示区的路由应用,并说明了路由切换时组件的生命周期变化。
2025-10-09 08:35:01
785
原创 Spring data JPA 简易指南
本文介绍了Spring Data JPA的简易使用指南。首先通过创建Spring Boot项目并添加JPA及相关依赖完成准备工作。然后详细说明了实体类(Customer)的创建过程,包括必要的注解(@Entity、@Id等)和Lombok的使用注意事项。接着介绍了存储库(CustomerRepository)的创建方式,继承CrudRepository接口实现基础CRUD功能。最后提供了测试用例来验证存储库的增删改查操作。文章内容简洁实用,适合快速上手Spring Data JPA的基础使用。
2025-10-06 09:00:00
416
原创 Vue3 学习笔记 6:Pinia
本文介绍了Vue3状态管理库Pinia的基本使用。首先创建测试项目,包含两个组件(Count和LoveTalk)。然后安装Pinia并配置main.ts。重点演示了如何定义store(count.ts),管理state数据(sum),以及组件中读取和修改state的两种方式(直接访问和通过$state属性)。最后提到处理多个state数据时可以批量修改。文章提供了完整的代码示例,适合Pinia初学者快速上手。
2025-10-04 08:30:00
1376
原创 Vue3 学习笔记 4:生命周期
Vue3 学习笔记摘要 ref属性:用于获取DOM元素或组件实例,避免传统JS方式可能出现的ID冲突问题。通过ref()声明变量并与HTML标签绑定,可精确获取当前组件的DOM元素。组件实例需通过defineExpose暴露方法/数据才能在父组件中访问。 自定义类型:使用TypeScript接口定义对象类型(如Person),确保类型安全并提供IDE智能提示。支持泛型数组(Array<Person>或Person[])及自定义复合类型(如PersonList)。 props传参:父组件通过属性向
2025-10-03 08:30:00
1043
原创 Vue3 学习笔记 3:计算属性
本文介绍了Vue3中的计算属性和监视功能。计算属性(computed)可以缓存计算结果,优化性能,并支持只读和可读写两种形式。监视功能(watch)可以监听ref定义的基本类型和对象类型数据的变化,通过回调函数获取新旧值,并支持手动停止监视。文章通过具体示例演示了如何实现单向/双向绑定、定义计算属性、处理对象类型数据变化等常见场景,帮助开发者更好地理解和使用Vue3的响应式特性。
2025-10-01 08:30:00
1940
原创 Vue3 学习笔记 2:组合式 API
Vue3学习笔记摘要:本文介绍了Vue3的组合式API与选项式API的区别,重点讲解了setup方法的使用方式及其语法糖形式。通过对比示例展示了如何将选项式代码转换为组合式写法,并说明响应式数据需要使用ref等特殊函数定义。文章还介绍了setup与生命周期钩子的执行顺序、与选项式API的共存问题,以及如何通过插件简化组件名称定义。最后比较了Vue2和Vue3在响应式数据处理上的差异。
2025-09-30 08:30:00
1016
原创 Vue3 学习笔记 1:开始
早前可以通过vue-cli需要先安装 npm(NodeJS 的包管理器)。会开启一个交互式命令行界面:任何组件都可以在后期手动添加,这里只选择一个 TS(TypeScript)支持。依赖会安装在目录下。
2025-09-29 08:30:00
730
原创 RuoYi 学习笔记 3:二次开发
进行二次开发前最好先修改一下项目中的包名和子模块名称,可以使用一个工具——。将后端代码打包后使用修改器修改包名等:修改完后重新用 idea 打开加载,处理依赖后启动,以检查是否正常。
2025-09-28 08:33:03
1156
原创 RuoYi 学习笔记 2:常用功能
若依实现了粗粒度(基于用户-角色)的权限控制以及细粒度(基于部门岗位)的权限控制。涉及的表结构:表关系:添加菜单并实现权限管理的案例可以观看。
2025-09-28 08:32:23
601
原创 RuoYi 学习笔记 1:开始
本文介绍了若依(RuoYi)框架的学习入门过程,主要包括环境准备和代码生成两部分。环境准备包括前后端代码下载、数据库配置、Redis配置及项目启动;代码生成部分演示了如何通过若依管理后台生成课程管理相关代码,并完成前后端代码的整合。文章提供了详细的配置步骤和参考资源链接,适合快速上手若依框架的开发。
2025-09-17 08:30:00
502
原创 Python 包管理工具 UV
本文介绍了Python包管理工具UV的安装与使用。UV作为pip的替代方案,具有速度快、支持多版本Python管理和虚拟环境等优势。文章详细讲解了UV的安装步骤、Python版本管理功能,以及如何运行带有依赖的脚本。在项目开发方面,介绍了UV如何初始化项目、管理依赖、配置启动项和版本控制。UV通过自动创建虚拟环境、简化依赖管理,为Python项目开发提供了便捷的工具链。
2025-09-16 08:30:00
1646
原创 MySQL 从入门到精通 18:读写分离
本文介绍了MySQL读写分离的两种实现方式:1)应用程序层控制,通过持久层框架(如MyBatis)自动路由读写请求;2)使用MyCat中间件实现,通过配置逻辑库和负载均衡策略自动分发SQL请求。详细演示了MyCat配置过程,包括schema定义、数据节点设置、负载均衡策略选择(推荐balance=1或3)。通过实际案例验证了MyCat正确路由读写请求到主从库,并指出一主一从架构的局限性,建议高可用场景采用双主双从模式。文中提供了完整的配置示例和测试方法。
2025-08-29 08:00:00
511
原创 MySQL 从入门到精通 17:分库分表
摘要: 本文介绍了MySQL分库分表技术及其实现工具MyCat。主要内容包括: 分库分表背景:解决单库性能瓶颈问题,包括IO瓶颈和CPU瓶颈 拆分原则:垂直分库(按业务)、垂直分表(按字段)和水平拆分(数据分散) MyCat介绍:作为分库分表中间件,无需修改应用代码即可实现数据分片 MyCat安装配置:详细说明安装步骤、环境要求和配置文件修改 架构说明:展示MyCat在应用层和数据库层之间的中间件位置 快速入门:提供配置示例,包括schema.xml和server.xml的配置方法
2025-08-28 08:00:00
1157
原创 MySQL 从入门到精通 16:主从复制
MySQL主从复制是一种将主库的数据变更同步到从库的技术,通过二进制日志传输和重做实现数据一致。配置步骤包括:主库设置server-id、创建复制账号、查看日志位置;从库配置server-id、指定主库连接信息并启动同步。主从复制能提高系统容灾性、实现读写分离和备份隔离。测试表明,主库的数据修改会实时同步到从库。该技术适用于高可用架构设计,能有效分担主库压力并提升系统可靠性。
2025-08-25 08:00:00
585
原创 MySQL 从入门到精通 15:日志
MySQL日志系统主要包括错误日志和二进制日志。错误日志默认开启,记录在/var/log/mysqld.log中,用于排查系统问题。二进制日志默认记录所有DDL和DML语句(不包含查询),用于数据恢复和主从复制,MySQL 8默认开启ROW格式,可通过mysqlbinlog工具查看日志内容。日志文件以binlog.000001格式递增存储,并维护索引文件binlog.index。二进制日志支持三种格式:STATEMENT(记录SQL语句)、ROW(记录行变更)和MIXED(混合模式)。
2025-08-24 08:00:00
1868
原创 MySQL 从入门到精通 14:MySQL 管理
MySQL管理工具与系统数据库 MySQL自带四个核心系统数据库:mysql存储运行时信息,information_schema提供元数据访问,performance_schema监控性能指标,sys包含性能调优视图。文章介绍了常用的MySQL管理工具:mysql命令行客户端可直接执行SQL语句;mysqladmin用于数据库管理操作;mysqlbinlog解析二进制日志;mysqlshow快速查找数据库对象并统计信息。这些工具为DBA提供了数据库监控、维护和性能优化的基础手段,通过命令行参数即可完成常见管
2025-08-22 08:00:00
383
原创 MySQL 从入门到精通 13:InnoDB 引擎
本文介绍了MySQL InnoDB存储引擎的核心架构和存储结构。InnoDB采用表空间(ibd文件)作为基本存储单元,包含段、区、页、行四个层级结构。其架构分为内存结构和磁盘结构两大部分:内存结构包括缓冲池(Buffer Pool)、更改缓冲区(Change Buffer)、自适应哈希索引和日志缓冲区;磁盘结构则包含系统表空间、独立表空间和通用表空间。文章详细说明了各组件的作用和配置参数,如缓冲池管理、日志刷新策略等,并提供了查看这些结构的SQL命令和Linux文件系统操作示例。
2025-08-21 08:00:00
775
原创 MySQL 从入门到精通 12:锁
MySQL锁机制分层:全局锁锁定所有表,用于备份但影响业务;表级锁包括读锁(共享)和写锁(独占);元数据锁自动管理表结构变更冲突。全局锁语法为FLUSH TABLES WITH READ LOCK/UNLOCK TABLES,表锁通过LOCK TABLES设置。InnoDB引擎可用--single-transaction参数避免全局锁备份问题。元数据锁分为共享读/写锁和排它锁,通过performance_schema.metadata_locks可查看锁状态。
2025-08-20 08:00:00
1073
原创 MySQL 从入门到精通 11:触发器
MySQL触发器是与表关联的数据库对象,可在数据操作前后自动执行SQL语句。本文介绍了触发器的创建、查看和删除语法,并通过实例演示了如何实现数据变更日志记录功能。重点说明了MySQL行级触发器的特点(每条记录变更都会触发),以及如何使用OLD和NEW引用变更前后的数据。示例包含插入、更新和删除三种触发器类型,展示了如何通过触发器自动记录用户表操作日志到日志表中。最后提供了相关学习资源参考。
2025-08-19 17:53:09
440
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅