- 博客(20)
- 收藏
- 关注
原创 设计模式-装饰器模式
装饰指在某件物品上装点额外饰品的行为,以使其原本朴素的外表变得更加美观、华丽,而装饰器就是能够化''腐朽''为神奇的利器。装饰器模式(Decorator)能够在运行时动态地为原始对象增加一些额外的功能,使其变得更加强大。下面以装修房子为例。装修风格多种多样,比如简约风、地中海、中式、欧美等。每个人审美不同,没有装修过的毛坯房反而非常受欢迎。相对于通过继承实现的成品房,毛坯房显得更灵活;如果“买毛坯房送装修”,就可以自由组合。成品房通常由毛坯房加工而来,但继承方式把加工结果写死在类里,不够灵活。
2026-10-05 15:31:09
197
原创 My algorithm approach 力扣167
双指针满足“只使用常量级额外空间”,所以上面的思路 1 和思路 2 只能作为思路过渡,最终还是要使用双指针解法。哈希表解法虽然时间复杂度是 O(n),但空间复杂度也是 O(n),不满足本题“只使用常量级额外空间”的要求;而双指针利用数组非递减的特性,做到 O(n) 时间、O(1) 空间,是本题的标准解法。
2026-09-14 21:51:37
227
原创 Spring Boot-1-3-MVC 的参数校验从 @Valid 到统一异常处理
*** 1. @RequestBody + @Valid 校验失败*/return Result.fail(400, "请求参数校验失败", errors);其中@RestControllerAdvice默认全局生效,作用于所有的Controller,等价于@ControllerAdvice + @ResponseBody。它具备@ControllerAdvice的4个属性,可以精确到对那些Controller生效。
2026-09-14 18:39:48
163
原创 SpringBoot-1-1-MVC Controller 相关注解的使用
本文面向 Spring Boot 初学者,系统介绍 MVC Controller 层常用注解的使用方式。通过简洁的代码示例与效果截图,帮助你快速理解每个注解的作用和参数含义。阅读本文前,你需要具备基础的 Spring Boot 项目搭建能力。
2026-08-12 22:40:17
212
原创 Spring AOP 注解开发详解:从 XML 配置迁移到 @Aspect 实现原理
/project>@Component@Bean位置类上方法上创建方式Spring自动扫描创建开发者手动创建控制权Spring开发者适合对象自己编写的类第三方类是否需要@ComponentScan需要不需要常见场景。
2026-07-12 13:40:52
203
原创 Spring AOP(XML配置版):代理机制与拦截器
CGLIB代理:通过继承生成目标类的子类来实现代理,代理对象是目标类型的子类(增强子类),可以转换为目标类也就可以转换为其父类或接口,可以来接非final方法,private不能拦截。SpringAOP是一个基于拦截器链实现的,执行时通过责任链逐层推进链路,X.proceed() 的作用是继续执行拦截器链,在合适的位置触发目标方法执行。目标类-----被代理------>切面类-----提供增强逻辑-------->AOP配置(切点加通知)----------->在方法执行前后插入。
2026-06-29 13:49:25
227
原创 Spring Cloud -微服务(三):从 Eureka 到 Nacos,开启跨海大桥的高级自动化调度
跳过 Nacos 直接访问通过本次改造,我们将系统从:静态配置 + 固定服务调用升级为:动态配置中心 + 服务注册与发现配置热更新(无需重启服务)服务动态扩展(多实例部署)自动负载均衡更强的系统解耦能力这意味着系统已经从“能运行”迈向“可扩展、可演进”的微服务架构。而 Nacos 在其中扮演的角色,不仅是注册中心,更是整个系统的“动态调度中枢”。
2026-04-26 16:40:11
421
原创 Spring Cloud -微服务(二):告别“小船划船”模式:用 OpenFeign 为微服务孤岛架起“跨海大桥”
Data模块化治理:通过建立common 模块,我们将 POJO(如Book)和通用的工具类抽取出来,避免了在user-service 和product-service中重复定义相同的实体类,确保了服务间传输对象的数据契约一致性。
2026-04-17 19:13:31
399
原创 Spring Cloud -微服务(一):手把手教你搭建 Eureka 注册中心与服务注册
(1).单体架构问题(耦合高 / 难扩展)(2).系统变大后维护困难(3).引出微服务架构。
2026-04-15 16:48:22
397
原创 Redis + MySQL 解决分页查询性能瓶颈、从乱码到清爽 JSON redis 1-2
在传统的分页查询场景中,每次用户访问页面都会触发数据库查询。当访问量增加时,会对数据库造成较大压力,影响系统性能和响应速度。为了解决这一问题,本文基于实现一个简单的分页缓存系统,通过引入缓存机制,减少数据库访问次数,从而提升系统整体性能。
2026-03-27 20:33:09
451
1
原创 spring 1-1 IOC
前言:这篇文章使读者理解和使用简单的ioc容器。IOC: 传统开发中,对象内部通过new主动创建依赖对象,导致对象间的紧耦合。IoC 将这种创建和管理依赖的控制权从对象自身给外部容器(如 Spring 容器)。对象不再主动查找或创建依赖,而是被动等待容器注入。个人理解:我想吃鸡蛋炒饭,使用xml文件的形式。首先创建一个项目,可以选择maven或者选择springboot项目可以选择。
2026-03-06 20:03:04
317
原创 mybatis 1-3
核心概念:<sql> 与 <include> 到底是什么?1. 本质作用<sql> 是 MyBatis 提供的「SQL 片段定义标签」,用于把重复出现的 SQL 片段(如列列表、固定条件、排序规则) 抽离成独立模块;<include> 是「引用标签」,用于在主 SQL 中复用这些片段。2. 核心价值减少重复代码:比如 10 个查询都需要查 id, username, email, created_at,无需重复写 10 次,抽成 <sql> 后只需 <include> 引用;
2026-02-08 20:32:37
703
原创 mybatis 1-2 -映射器-***Mapper.xml
示例:Java接口代码如下图2-5// 使用Map接口来传递参数来进行查询2-5where 1=1=''"></if>=null"></if>=''"></if></select></mapper>2-6当 Mapper 方法接收一个 Map 作为参数时,XML 中可以直接用 Map 的 key 名称来访问对应的 value。例如,map 中有 key 为 "name" 的条目,则在 SQL 中使用 #{name} 即可取得其值;这是最常见也最推荐的写法。
2026-02-01 17:25:46
971
原创 mybatis 1-1
mybatis解决的是传统JDBC的繁琐的特点。等上述优势以下是对mySQL数据库中图书信息的相关修改数据库表名books。
2026-01-05 22:13:16
971
原创 我的解题思路与实现 (第一道)
这里为了简单起见,我们把不同种类的牛肉面从 1 到 N 编号,以后就用编号代替牛肉面品种的名称。兰州牛肉面是历史悠久的美食,根据牛肉面的宽窄、配料的种类,可以细分为上百个不同的品种。定义变量sum来记录总的营业额题目输出结果是两位数所以定义为double类型,并创建一个数组来记录每碗面的数量,后面使用for(我习惯了当然也可以使用while等来处理)循环来处理题目,用a来得到相关的编号用。本题的任务是,请你写程序帮助一家牛肉面馆的老板统计一下,他们一天卖出各种品种的牛肉面有多少碗,营业额一共有多少。
2025-11-10 22:05:48
463
原创 java编程基础1-1基本语法-变量常量
我们都知道int类型的数据占4个字节其取值为-2的31次方到2的32次方减1(-2147483648~2147483647),如图1-1中当我们为a赋值的时候报红这是因为上面所说的输入到代码中的整数默认为int类型当超过int类型的取值范围时就会报错。:字符串常量用于表示一连串的字符,一个字符串常量要用一对英文半角格式的双引号("")括起来,一个字符串可以包含一个字符或多个字符,也可以不包含任何字符,即长度为0。)依据时Unicode字符码,同时输出后b的值和a的值一样(‘a’=97)。
2025-09-09 21:35:37
680
原创 java--jsp-基础1--1
中使用request.getParameter()方法来获取form表单传输过来的值,19行对用户和用户的密码进行判断如果正确则通过转发进入wecome.jsp页面否则进入login.jsp页面(登录页面);html注释不会被翻译也不会被编译(HTML 注释会被包含在 HTTP 响应中发送到客户端,浏览器会接收这段注释但不会在页面上显示)。表示输出内容即在方法中的输出语句其会先寻找方法中是否会有这个属性然后才会在类中寻找。表示定义在Java的类中即在其中定义的属性和在Java类中定义的一样;
2025-09-09 17:29:35
286
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅