自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 使用若依二次开发商城系统-5:搞懂SPU和SKU

每次网购时,你是否注意过同一款商品会有不同颜色、尺寸、配置的选项?比如同一款手机有「黑色128G」和「银色256G」的不同选择。这背后其实是电商世界的两个核心密码——SPU和SKU。用最生活化的例子,带你轻松理解这两个概念。

2025-04-22 16:05:30 868

原创 使用若依二次开发商城系统-4:商品属性

商品属性功能类似若依自带的字典管理,分两步,先设置属性名,再设置对应的属性值。

2025-04-22 12:37:55 990

原创 使用若依二次开发商城系统-3:商品分类

按照功能2的操作步骤,再生成商品分类的单表增删改查功能。商品分类页面:用于录入商品的分类信息。

2025-04-21 20:44:14 258

原创 使用若依二次开发商城系统-2:商品品牌

商品中心包括5个子功能。商品品牌页面:用于录入品牌名称和品牌图片。使用若依的代码生成功能,生成商品品牌的单表增删改查。

2025-04-21 16:48:32 372

原创 使用若依二次开发商城系统-1:搭建若依运行环境

若依框架有很多版本,这里使用的是springboot3+vue3这样的一个前后端分离的版本。

2025-04-21 16:48:03 332

原创 mapstruct使用详解

创建实体类User@Data // Lombok 自动生成 Getter/Setter// 嵌套对象创建 DTO 类UserDTO@Data// 字段名与实体不同// 类型不同(String vs LocalDate)// 嵌套对象字段提取MapStruct 的优势•零运行时开销:生成的代码与手写等效,无反射调用。•类型安全:编译时检查字段是否存在、类型是否匹配。•灵活扩展:可通过自定义注解或方法扩展映射逻辑。

2025-04-16 16:18:26 783

原创 @RequestBody 注解详解

•核心价值简化了复杂数据结构的接收,是 RESTful API 开发的关键注解。•最佳实践• 始终明确指定(如• 结合@Valid实现自动化校验。• 避免用于大文件或流式数据处理。•适用框架:Spring MVC、Spring Boot 及其他基于 Spring 的 Web 项目。

2025-04-14 09:55:25 1273

原创 @PathVariable和@RequestParam

•用于资源定位,强调 URI 的层次结构和资源唯一性(如/users/123设计建议:将唯一标识符(ID、编码等)放在路径中。•用于附加操作条件,适合非核心的过滤、分页等场景(如?page=2设计建议:避免滥用查询参数传递资源标识,保持 URI 简洁。•:通过路径变量指定资源类别。•minPricemaxPricebrand:通过查询参数实现条件过滤。

2025-04-14 09:47:32 577

原创 @RestController 注解详解

是 Spring 生态中构建 REST API 的核心工具,通过减少样板代码显著提升开发效率。结合 Spring Boot 的自动配置,开发者可以快速搭建高性能的 Web 服务接口。在微服务架构和前后端分离项目中,该注解的应用尤为广泛。

2025-04-14 09:44:19 374

原创 深入解析@Validated注解:Spring 验证机制的核心工具

验证手机号格式(自定义规则)。•排查步骤• 确保实现类被 Spring 管理(如添加@Component• 检查注解的指向正确类分层校验• Controller 层:处理基础数据格式校验• Service 层:执行业务规则校验(如库存检查)合理分组:避免为不同场景创建重复 DTO,通过分组复用校验规则。统一异常处理:全局捕获校验异常,返回结构化的错误信息。性能优化• 避免在复杂校验中执行数据库操作(优先通过缓存或异步校验)• 对高频接口禁用实时校验(如通过groups动态控制)

2025-04-13 21:05:56 667

原创 openapi + knife4j的使用

通过knife4j标准化:遵循 OpenAPI 3 规范生成文档高效协作:提供清晰的接口定义和调试工具美观易用:Knife4j 的增强 UI 提升使用体验建议在开发阶段启用文档,生产环境通过关闭访问。

2025-04-13 20:35:54 473

原创 @EnableConfigurationProperties激活@ConfigurationProperties的必要性

提供了对配置类绑定的显式控制权,尤其在模块化开发和第三方库集成中不可或缺。尽管 Spring Boot 在某些场景下能隐式处理,但显式使用该注解是更可靠、更易维护的做法。即使在某些情况下可以省略,显式声明能提高代码可维护性,明确配置类的来源。激活配置类,确保与 Spring Boot 自动配置机制兼容。等注解),Spring Boot 会自动完成属性绑定,无需。在 Spring Boot 2.2+ 中,如果满足以下条件,统一激活多个配置类,提升代码可读性。时,配置类通常不会使用。在自动配置类中显式启用。

2025-04-09 11:44:09 311

原创 深入理解@ConfigurationProperties注解

1. 所属包与版本•包名•引入版本: Spring Boot 1.0+(核心功能之一)2. 核心作用是 Spring Boot 中用于将配置文件中的属性批量绑定到 Java 对象的核心注解。它通过类型安全的方式,将分散在配置文件(如)中的属性值,按规则映射到 Java 类的字段上,实现配置的集中管理和强类型访问。类型安全:通过 Java 对象访问配置,减少硬编码错误。结构化管理:支持复杂配置的层级化、模块化设计。灵活扩展:适用于自定义 Starter 开发和多环境配置切换。

2025-04-09 11:39:35 999

原创 深入理解@EnableConfigurationProperties注解

1. 所属包与版本•包名•引入版本: Spring Boot 1.2+(核心功能之一)2. 核心作用是 Spring Boot 中用于激活外部化配置属性绑定的关键注解。将注解的类注册为 Spring Bean。从配置文件(如或)中读取属性值,并注入到这些 Bean 中。在自定义 Starter 中,通过提供默认配置,允许用户通过配置文件覆盖。步骤定义配置类:自动配置类中启用:@Bean是 Spring Boot 外部化配置的核心注解,它通过属性绑定和Bean 注册。

2025-04-09 11:35:12 1428

原创 深入理解 Spring Boot 的@AutoConfiguration注解

1. 所属包与版本•包名•引入版本2.7+(替代旧的自动配置注册方式)2. 核心作用是 Spring Boot 用于标识自动配置类的核心注解。它明确标记一个类为 Spring Boot 自动配置逻辑的入口,用于根据项目依赖和配置条件,动态注册 Bean 或调整默认行为。是 Spring Boot 自动配置机制的核心进化,它通过明确的注解标识和新的注册机制,解决了传统配置方式的痛点。在项目中,该注解的合理使用能够:• 提升模块化水平,快速集成功能组件。• 通过条件化加载避免资源浪费。

2025-04-09 11:12:53 1395

原创 深入理解 WebMvcConfigurer:定制 Spring MVC 的核心接口

是 Spring Boot 中定制 MVC 行为的“瑞士军刀”,它通过细粒度的配置方法,帮助开发者在不破坏默认机制的前提下,灵活扩展功能。无论是统一路由规则、增强安全拦截,还是优化数据传输格式,理解并熟练使用该接口,都能显著提升项目的可维护性和扩展性。

2025-04-09 11:01:04 596

原创 使用AI一步一步实现若依(29)

采用经典的RBAC(基于角色的访问控制)用户:系统使用者(如:张三、李四)角色:权限集合(如:管理员、新员工)菜单:具体操作菜单(如:用户管理、新员工培训)

2025-03-29 18:04:02 762

原创 使用AI一步一步实现若依(28)

JWT(JSON Web Token)是一种基于Token的轻量级认证协议,由 RFC 7519 规范定义。其核心思想是:•无状态:服务端无需存储 Token,认证信息通过加密签名直接嵌入 Token 中。•自包含性:Token 本身包含用户身份、权限等关键数据,服务端只需验证签名即可信任内容。•跨域友好:通过 HTTP Header(如)传递,天然支持跨域场景。Token 结构JWT 由三部分组成,以•Header:声明 Token 类型(typ: "JWT")和签名算法(如。

2025-03-27 15:49:29 692

原创 使用AI一步一步实现若依(27)

将登录的功能对接后端。

2025-03-26 21:25:24 778

原创 使用AI一步一步实现若依(26)

通过操作菜单管理页面,新增一个新页面。

2025-03-26 16:01:49 468

原创 使用AI一步一步实现若依(25)

前言实现角色管理的前端+后端增改查功能,暂时不实现删除。一.操作步骤1.Controllersrc/main/java/com/ruoyi/web/controller/system/SysRoleController.java2.Servicesrc/main/java/com/ruoyi/system/service/ISysRoleService.javasrc/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java

2025-03-26 14:33:39 398

原创 使用AI一步一步实现若依(24)

前言实现菜单管理的前端+后端增改查功能,暂时不实现删除。src/main/java/com/ruoyi/web/controller/system/SysMenuController.java前端2.APIsrc\api\system\menu.js3.修改模板src\views\system\menu\index.vue4.优化BUG在开发过程中,随着功能的添加,之前实现的代码会产生一些bug,随功能一起优化代码。src\components\IconSelect\index.vues

2025-03-26 09:04:32 541

原创 使用AI一步一步实现若依(23)

menu_id bigint(20) not null auto_increment comment '菜单ID',menu_name varchar(50) not null comment '菜单名称',parent_id bigint(20) default 0 comment '父菜单ID',order_num int(4) default 0 comment '显示顺序',path varchar(200) default '' comment '路由地址',

2025-03-25 22:32:11 950

原创 使用AI一步一步实现若依(22)

前后端实现基础增删改查功能。新建文件:src/main/java/com/ruoyi/common/constant/HttpStatus.java/*** 操作成功*//*** 对象创建成功*//*** 请求已经被接受*//*** 操作已经执行成功,但是没有返回数据*//*** 资源已被移除*//*** 重定向*//*** 资源没有被修改*//*** 参数列表错误(缺少,格式不匹配)*//*** 未授权*//**

2025-03-24 16:41:56 212

原创 使用AI一步一步实现若依(21)

Axios 是一个基于 Promise 的现代化 HTTP 客户端库,广泛应用于浏览器和 Node.js 环境。它简化了前端与后端的数据交互,具备拦截器、自动 JSON 转换、请求取消等强大功能,成为替代原生 fetch 的热门选择。新建文件:src\utils\request.js// 创建axios实例// axios中请求配置有baseURL选项,表示请求URL公共部分// 超时headers: {})// 响应拦截器},error => {

2025-03-23 21:52:58 473

原创 使用AI一步一步实现若依(20)

MyBatis-Plus 的分页插件提供了强大的分页功能,支持多种数据库(如 MySQL、Oracle、PostgreSQL),通过简单的配置即可实现高效的分页查询。MyBatis-Plus 的分页功能具有以下优势:•无侵入性:无需修改原有 Mapper 接口和 SQL 语句。•自动化处理:自动拼接COUNT查询语句,计算总记录数。•多数据库支持:通过DbType配置适配不同数据库方言。•与 Spring Boot 深度整合:通过 Starter 依赖快速集成。POJO自动绑定。

2025-03-22 21:37:14 1118

原创 使用AI一步一步实现若依(19)

user_id bigint(20) not null auto_increment comment '用户ID',dept_id bigint(20) default null comment '部门ID',user_name varchar(30) not null comment '用户账号',nick_name varchar(30) not null comment '用户昵称',

2025-03-21 12:29:49 902

原创 使用AI一步一步实现若依(18)

前端项目中,关于Vue和element plus的知识点,大概完成了80%,后续就前后端搭配去实现完整的功能。

2025-03-20 15:44:05 404

原创 使用AI一步一步实现若依前端(17)

前言一.操作步骤1.菜单管理新建文件src\views\system\menu\index.vue2.修改文件src\api\system\menu.js造一些数据,用于页面的静态展示。3.自定义组件新建文件src\components\DictTag\index.vue新建文件src\components\IconSelect\index.vue新建辅助文件src\components\IconSelect\requireIcons.js4.修改src\utils\ruoyi.js增

2025-03-20 12:34:17 963

原创 使用AI一步一步实现若依前端(16)

前言页面静态展示。新建文件src\views\system\role\index.vue2.请求接口新建文件src\api\system\role.js,管理角色页面里用到的所有接口。新建文件src\api\system\menu.js,管理菜单页面里用到的所有接口。二.功能验证运行项目,浏览器访问http://localhost:5173/system/role

2025-03-20 11:26:26 485

原创 使用AI一步一步实现若依前端(15)

前言只完成页面的静态展示。按钮的功能大多数都涉及和后端交互,待后续接入后端再实现。新建文件src\views\system\user\index.vue2.请求接口新建文件src\api\system\user.js,封装所有该页面使用到的网络请求接口。暂时模拟一些静态数据。3.安装依赖 是一个用于 创建可拖拽调整大小的面板布局 的 Vue 组件库。4.自定义分页组件新建文件src\components\Pagination\index.vue5.自定义toolbar组件新建文件src\c

2025-03-20 09:55:38 441

原创 JavaScript 函数类型详解:函数声明、函数表达式、箭头函数

定义:直接通过function关键字声明函数。特点:函数名会被提升到作用域顶部,允许“先调用后定义”。// 函数声明函数类型核心优势注意事项函数声明提升特性,适合工具函数避免在块级作用域内使用(如if函数表达式灵活赋值,适合动态逻辑注意const不可重新赋值箭头函数简洁安全,适合回调函数避免用于对象方法和构造函数。

2025-03-18 21:07:14 509

原创 使用AI一步一步实现若依前端(14)

在自动将 SVG 文件转换为可复用的<symbol>图标运行时动态加载 SVG 图标通过<use>标签高效复用图标<template></svg>},color: {})${`)</script>width: 1em;</style>

2025-03-13 16:27:07 1091

原创 使用AI一步一步实现若依前端(13)

用于在侧边栏顶部显示logo图片和文字。支持折叠和展开。// 获取Logo背景色 const getLogoBackground = '#304156' // 获取Logo文字颜色 const getLogoTextColor = '#ffffff' </ script > < style lang = " scss " scoped > .sidebarLogoFade-enter-active {margin : 0;

2025-03-13 13:13:29 826

原创 使用AI一步一步实现若依前端(12)

前言el-menu提供了侧边栏的折叠属性collapse,可以水平折叠收起菜单。定义appStore,保存控制侧边栏状态的相关信息。showSidebar :false侧边栏展开,true侧边栏折叠。sidebarWidth :展开时的组件宽度。2.修改Navbar.vue在面包屑前,增加一个图标,点击图标会触发appStore里的状态变化,实现侧边栏折叠和展开。3.修改Sidebar.vue将el-menu的collapse属性绑定到appstore的showSidebar,响应式的控制侧边

2025-03-13 11:10:41 1100

原创 使用AI一步一步实现若依前端(11)

在导航栏上显示当前页面路径的就是面包屑。它可以侧边栏菜单联动。

2025-03-12 15:11:34 1245

原创 使用AI一步一步实现若依前端(10)

给不需要显示的对象设置hidden属性,例如登录页。给首页增加meta属性。export这个初始化的路由数组,后面需要跟服务端返回的动态数组合并。},path: '/',meta: { title: '首页', icon: 'House', affix: true },meta: { title: '首页', icon: 'House', affix: true }

2025-03-12 10:50:35 1118

原创 使用AI一步一步实现若依前端(9)

模板代码使用AI生成,基本可以实现大概的效果。想要精细化调整,可以等到功能实现完成后再进行重构。

2025-03-11 20:43:58 834

原创 使用AI一步一步实现若依前端(8)

在项目中,我们规定只有首页(/login),是不需要用户登录,就可以正常访问的。其他页面,都需要登录才能访问。如果用户在没有登录时,直接访问http://localhost:5173/index,就会被重定向到登录页。用户的登录状态,统一保存在userStore里。新建文件:src/stores/user.js// 异步操作return {login})新建文件:src/stores/permission.js将请求getRouters接口和处理返回结果的逻辑,都放在该Store里。

2025-03-11 16:05:32 770

原创 使用AI一步一步实现若依前端(7)

前言在若依里,addRoute方法是在前置守卫里被调用的。要能实现在浏览器刷新后,能重新从后端服务器获取数据再动态添加。处理逻辑如下:浏览器刷新前置守卫Pinia后端API路由器浏览器触发 beforeEach检查权限数据数据已丢失重新获取权限返回权限数据addRoute 动态路由完成路由跳转浏览器刷新前置守卫Pinia后端API路由器浏览器不能像昨天的代码那样,在layout/index.vue这个地方调用。会导致浏览器刷新后,动态添加的路由记录丢失。在 Vue Router 中通过 注册全局前置守

2025-03-11 10:41:28 838

空空如也

空空如也

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

TA关注的人

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