- 博客(41)
- 收藏
- 关注
原创 Redis的java客户端
本文介绍了使用Jedis和SpringBoot操作Redis数据库的方法。首先讲解了Jedis连接池的配置与管理,包括连接池参数设置和资源获取,强调连接池在高并发场景下的重要性。然后详细说明了字符串和哈希类型数据的操作方式,包括存储、读取等基本操作。接着介绍了在SpringBoot项目中集成Redis的步骤,包括依赖配置、RedisTemplate的使用以及对象序列化处理。最后比较了Jedis和RedisTemplate的优缺点,指出RedisTemplate在Spring集成中的便利性。全文提供了完整的代
2026-04-18 19:26:47
449
原创 Redis简单应用
Spring Data Redis 是 Spring 提供的一个用于操作 Redis 数据库的框架,它对 Redis 的访问进行了封装,使开发者可以通过简单的 Java API 来操作 Redis,而不需要直接使用底层的 Redis 客户端。通过 Spring Data Redis,开发者可以方便地实现对 Redis 中各种数据类型(如 String、Hash、List、Set、ZSet)的存取操作。
2026-04-09 21:00:47
201
原创 Redis基础
Redis是一个基于内存的key-value结构数据库,属于 NoSQL 数据库的一种。它具有高性能、高并发、低延迟的特点,常用于缓存、会话存储、消息队列等场景。
2026-04-08 21:26:58
439
原创 苍穹外卖-新增套餐
新增套餐功能主要用于将套餐的基本信息以及套餐包含的菜品信息一起保存到数据库中。当用户在前端填写套餐信息并选择套餐包含的菜品后,系统会将数据封装为 SetmealDTO 对象发送到后端。Controller层接收到请求后调用 setmealService.saveWithDish() 方法处理业务逻辑。Service层首先将套餐的基本信息保存到 setmeal 表中,并获取数据库自动生成的套餐ID,然后遍历套餐中包含的菜品列表,为每个菜品设置对应的套餐ID,最后通过批量插入的方式将套餐与菜品的关联信息保存到
2026-03-26 20:48:58
649
原创 苍穹外卖-修改菜品
修改菜品功能主要用于更新菜品的基本信息和对应的口味信息。当前端提交修改后的菜品数据时,控制层通过 @PutMapping 接收请求,并将前端传来的 DishDTO 对象交给服务层处理。服务层首先将 DishDTO 中的属性复制到 Dish 对象中,并调用 dishMapper.update 更新菜品表中的基本信息;随后根据菜品ID删除原有的口味数据,避免旧数据与新数据重复;最后将前端传来的新的口味集合重新插入到 dish_flavor 表中。通过这种“先更新菜品基本信息,再删除旧口味、插入新口味”的方式,保
2026-03-25 21:36:06
526
原创 苍穹外卖-删除菜品
当前端传入多个菜品ID时,系统首先在控制层接收这些ID,并调用服务层的批量删除方法。在服务层中,会先遍历所有菜品ID,查询每个菜品的状态,如果发现有菜品处于“起售中”状态,则不允许删除并抛出异常;接着系统会检查这些菜品是否被套餐关联,如果存在关联同样禁止删除。只有当菜品既没有处于起售状态,也没有被套餐使用时,系统才会执行删除操作,同时删除菜品表中的菜品数据以及与菜品相关的口味数据。
2026-03-25 19:37:19
238
原创 苍穹外卖-菜品分页查询
实现了菜品的分页查询,通过 DishController 接收前端传来的分页参数和过滤条件,调用 DishService 中的 pageQuery() 方法来执行分页查询。pageQuery() 使用 PageHelper 插件进行分页,并通过 MyBatis 执行动态查询,返回符合条件的菜品数据及总记录数。最终,将分页信息和数据封装到 PageResult 中返回给前端,前端根据该结果展示分页信息和菜品列表
2026-03-23 19:17:32
190
原创 苍穹外卖-新增菜品代码开发
菜品的新增功能和菜品口味的批量插入:DishController 接收前端传来的菜品数据(DishDTO),并调用 DishService 中的 saveWithFlavor() 方法,将菜品信息插入 dish 表,口味信息批量插入 dish_flavor 表,确保每个菜品的口味数据与其对应的菜品 ID 关联。使用 MyBatis 映射器(DishMapper 和 DishFlavorMapper)定义了插入操作,并通过 @AutoFill 注解自动填充公共字段(如创建时间、创建用户等)。
2026-03-23 15:24:38
548
原创 苍穹外卖-公共字段填充
业务表中有公共字段,create_time,create_user,update_time,update_user,设置员工表中和菜品表中的这些字段需要大量的set方法,代码冗余,不便于后期维护。对于这些公共的字段,我们的设计思路是统一来处理。即AOP,使用切面这种方式处理。假设我们需要执行对Mapper层的插入一条数据,那我们可以使用切面拦截这种操作,对所需要的公共字段进行赋值。
2026-03-18 19:44:16
486
原创 苍穹外卖-启用禁用员工账号
苍穹外卖项目中,启用禁用员工账号是一个典型的后端功能模块,完整展示了从Controller接收请求到数据库更新的全流程。Controller层通过@PostMapping("/status/{status}")接收前端传来的状态参数(1表示启用,0表示禁用)和员工ID,并调用Service层方法;Service层则采用Lombok的@Builder注解构建包含状态和ID的Employee对象(这种方式比传统setter更简洁优雅),然后调用Mapper接口;Mapper层配合XML映射文件实现动态SQL更新
2026-03-15 21:31:38
205
原创 苍穹外卖-编辑修改员工信息
查询接口采用@GetMapping("/{id}")和@PathVariable从URL路径获取员工ID,通过Service层调用Mapper执行SELECT操作,最终返回封装好的Result<Employee>对象;编辑接口则使用@PutMapping配合@RequestBody接收前端传来的EmployeeDTO,在Service层通过BeanUtils.copyProperties将DTO转换为employee对象
2026-03-15 21:31:31
371
原创 苍穹外卖-员工分页查询
员工分页查询功能采用了标准的Spring Boot + MyBatis + PageHelper架构,Controller、Service、Mapper三层分离,支持模糊查询、精确查询、范围查询等多种条件,PageHelper插件自动处理分页逻辑,简化开发
2026-03-09 17:22:57
182
原创 苍穹外卖-新增员工
1.接收请求 :前端发送POST请求到 /admin/employee/login ,携带用户名和密码2.参数校验 :Service层根据用户名查询数据库3.异常处理 :用户名不存在:抛出 AccountNotFoundException密码错误:抛出 PasswordErrorException账号被锁定:抛出 AccountLockedException生成JWT :登录成功后,生成包含员工ID的JWT令牌。
2026-03-06 10:55:32
383
原创 springboot左脚踩右脚螺旋升天系列-整合开发
Spring Boot 的多环境开发配置使得应用程序能够在不同的环境下运行(如开发环境、测试环境和生产环境),并根据不同的环境加载不同的配置文件。这种配置非常适合开发、测试和生产环境之间的差异化管理。
2026-01-27 15:18:56
672
原创 springboot左脚踩右脚螺旋升天系列-入门程序
Spring Boot 的入门程序通过自动配置和简化注解,极大地减少了代码和配置。你只需定义 @RestController 来处理 HTTP 请求,@SpringBootApplication 启动应用程序,其他的配置如内嵌的 Tomcat、Spring MVC 都是自动配置的。相比传统的 Spring 和 Spring MVC,Spring Boot 提供了非常简洁的开发体验
2026-01-27 10:50:24
712
原创 ssm-拦截器
在 Spring MVC 中,拦截器用于在请求处理过程中插入自定义逻辑。拦截器类实现 HandlerInterceptor 接口,主要包含三个方法:preHandle(请求到达控制器之前),postHandle(控制器方法执行后,视图渲染前),和 afterCompletion(整个请求处理完成后)。通过配置类中的 addInterceptors 方法,多个拦截器可以按照配置顺序依次执行。preHandle 方法返回 true 继续执行请求,返回 false 则中止请求。拦截器可以用于日志记
2026-01-21 14:30:06
1333
原创 ssm整合进阶1(异常处理)
通过 Result 类和 Code 类的封装,整个系统实现了统一的响应格式,前端能够根据 code 判断操作是否成功,数据和消息被有效地封装并传递。这样,表现层数据封装不仅提升了代码的可维护性,还提高了前后端沟通的效率。
2026-01-20 20:47:45
1295
原创 ssm-整合
Spring Boot + MyBatis 的简单图书管理系统。BookController 负责处理前端的 HTTP 请求,包括新增、更新、删除和查询图书;BookService 层实现了业务逻辑,调用 BookDao 来进行数据库操作;BookDao 使用 MyBatis 的注解执行 SQL 查询、插入、更新和删除操作;Book 类作为实体类,映射数据库表结构;数据库连接信息通过 jdbc.properties 配置文件提供。整个系统通过 Spring 的依赖注入机制,使控制器、服务和数据访问层实现了清
2026-01-19 19:55:06
969
原创 SpringMVC-RESTful风格案例
这是一个基于Spring MVC和Vue.js的简单图书管理系统,它实现了基于RESTful风格的图书增删改查(CRUD)功能。系统使用Vue.js作为前端框架,Spring MVC作为后端框架,通过REST API进行交互。
2026-01-12 21:47:55
737
原创 SpringMVC-参数传递(5加2)及响应
在Spring MVC中,参数传递和响应处理是核心功能之一。通过@RequestParam、@RequestBody、@ModelAttribute等注解,Spring MVC能够自动将请求中的参数(如URL参数、请求体中的JSON数据)转换为Java对象。
2026-01-10 14:56:57
1011
原创 SpringMVC-bean加载控制
(第二种方式)是一个Spring提供的抽象类,用于配置Spring MVC应用的核心组件,主要用来初始化:该方法返回Spring MVC的应用上下文,通常用于配置Spring MVC相关的bean(比如控制器、视图解析器等)。这里通过初始化上下文并注册Spring MVC配置类。:该方法返回根应用上下文,通常用于配置服务层、数据源等非Web层相关的bean。这里通过初始化上下文并注册根配置类。:该方法返回DispatcherServlet的请求映射路径。
2026-01-09 21:13:37
1077
原创 SpringMVC-简介及入门案例
Spring MVC 是一个基于请求驱动的 Web 框架,它是 Spring 框架的一部分,用于构建灵活、可扩展的 Web 应用。它采用了“前端控制器”模式,所有请求首先由DispatcherServlet接收,然后根据配置将请求转发到相应的控制器(Controller)进行处理。Spring MVC支持使用注解进行配置,允许灵活地处理请求、返回视图或数据(如JSON)。通过@Controller注解标识控制器类,@RequestMapping注解用于映射请求路径,@ResponseBody注解用于直接返回
2026-01-09 18:40:44
474
原创 spring-事务
事务管理:通过 @Transactional 注解,Spring 管理方法的事务。在方法执行时,Spring 会自动开启事务,方法执行成功后提交事务,若发生异常则回滚事务。事务管理员(发起事务方,在Spring中通常指代业务层开启事务的方法),事务协调员(加入事务方,在Spring中通常指代数据层方法,也可以是业务层方法)负责 组织和协调多个事务的执行
2025-12-26 18:15:40
791
原创 spring-AOP通知获取数据案例
案例中,使用了 Spring AOP 以及 Spring IoC 来实现对资源访问的增强,具体是对 ResourcesService 类的 openURL 方法进行 AOP 增强,使用了环绕通知来实现对方法参数(url 和 password)的修剪(去除空格)操作。
2025-12-26 10:05:25
682
原创 spring-AOP切入点表达式和通知类型
在 Spring AOP 中,切入点表达式(Pointcut Expression)是用来定义哪些方法会被拦截和增强的。切入点表达式通过 execution、within、args 等关键字来匹配目标方法。 在 Spring AOP 中,通知(Advice) 是指在切点方法执行时要执行的增强逻辑。Spring AOP 提供了五种不同类型的通知,它们决定了增强逻辑执行的时机。我们将详细介绍这五种通知类型和一个具体案例
2025-12-24 16:11:43
1146
原创 spring-AOP
Spring AOP 的本质,是在不修改原有业务代码的前提下,通过代理机制,把横切关注点统一织入到指定方法中,从而实现解耦、复用和统一管理。横切关注点的提取:在 MyAdvice 类中,我们将日志记录和时间统计等横切关注点从业务逻辑中分离出来,使得业务代码简洁,AOP 负责横切功能。解耦:使用 AOP,业务逻辑(如 update())和横切关注点(如时间统计)得以解耦,方便代码维护。
2025-12-24 14:48:12
853
原创 spring-依赖注入
Spring的依赖注入(DI)是Spring框架的核心功能之一,旨在实现对象之间的解耦。通过依赖注入,Spring容器负责对象的创建、管理以及其依赖的注入,从而避免了传统编程中的手动创建对象和耦合性问题,使得应用更加灵活、可维护和可测试。Spring依赖注入机制通过注解和配置文件让开发者能够以最简便的方式管理和注入Bean,从而实现松耦合、易测试的应用架构。
2025-12-23 12:12:08
2298
1
原创 spring-注解开发
Spring提供了一些注解,帮助我们将Java类自动注册为Bean,而不再依赖于传统的XML配置方式。使用这些注解时,Spring框架会根据注解自动扫描并管理这些Bean。
2025-12-23 11:20:45
1171
原创 依赖注入的两种方式
Setter 注入:可以通过 set 方法传递依赖。适用于可选依赖,或对象已创建但需要后续赋值的情况。可以注入引用类型和简单类型。构造器注入:通过构造方法传递依赖。适用于必需依赖,确保对象一创建就完成初始化。可以注入引用类型和简单类型。
2025-12-19 19:30:12
518
原创 bean实例化-静态工厂方法
静态工厂方法就是通过类的静态方法来创建对象,而不是直接使用构造方法。这种方法在 Spring 中被广泛使用,它提供了一种控制 Bean 创建过程的方式,让你能够通过 Spring 容器来管理 Bean 的生命周期和依赖关系。
2025-12-11 14:33:45
399
原创 ssm-day1-DI入门案例
IoC 容器 管理了所有对象的生命周期,并自动完成对象之间的依赖注入。通过 XML 配置文件,Spring 可以知道哪些类是 Bean,如何注入依赖
2025-12-11 13:57:10
168
原创 ssm-day1-IOC入门案例
(4)IOC容器得到后,如何从容器中获取bean对象呢?(3)被管理的对象交给IOC容器,如何获取到IOC容器?(1)IOC容器管理的是什么呢?(3)被管理的对象交给IOC容器,如何获取到IOC容器?(4)IOC容器得到后,如何从容器中获取bean对象呢?(5)pom.xml中如何导入坐标?(2)如何将被管理的对象告知IOC容器?(2)如何将被管理的对象告知IOC容器?(2)定义Spring管理的类(接口)(5)pom.xml中如何导入坐标?(1)IOC容器管理的是什么呢?(4)初始化IOC容器。
2025-12-10 17:52:23
183
空空如也
语义分割后无效果 和原图没有差别
2025-11-11
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅