自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Nacos实例缓存

用RestTemplate用RestTemplate每次调用都要请求两次,会非常耗费性能所以第一次获取实例列表之后,缓存一下,就不用再获取了而实例缓存要做的就是,和注册中心做一个同步/实时更新,如果有一个实例在注册中心被删除了,就从缓存中剔除出去这个实例这个实例缓存存在本地内存中。

2026-01-08 17:55:13 492

原创 Nacos负载均衡

"服务调用者如何选择服务目标实例"

2026-01-08 17:53:56 450

原创 注册中心远程调用

Nacos 的远程调用,是 “Nacos 服务发现 + 第三方调用框架(Feign/Dubbo)” 的组合,核心是 “跨服务接口调用”,Nacos 解决 “找谁调用” 的问题,调用框架解决 “怎么调用” 的问题,最终实现服务间的灵活、可靠通信。

2026-01-08 17:51:04 403

原创 nacos单机部署和集群部署

阿里的一个开源产品配置管理和服务发现。

2026-01-08 17:49:01 385

原创 Bootstrap和application.yml

不管是否用SpringCloud application.yml都是SpringBoot的必备配置,负责存储和应用直接相关的业务级配置(端口配置,数据库配置等等)application.yml中的加密内容(password: (加密后的字符串)需要在启动初期解密,bootstrap加载早,可以提供解密密钥。bootstrap里的配置参数会优先于application.yml,如果两者有相同的server.port,那么bootstrap的会生效。使用配置中心时:Nacos。

2026-01-08 09:36:23 214

原创 高德地图API的核心使用

高德 Web 服务 API 向开发者提供,开发者可通过这些接口使用各类型,返回结果支持格式。--高德地图API如果还没注册,就先看文档跟着步骤,非常详细有手就行--​(介绍的非常详细)也就是这个​所以我们就按这个url拼接发送请求就行了一个裸奔版供测试。

2026-01-06 10:39:36 768

原创 一层父子映射和多层树形结构

批量查出父级id列表根据父级id查询子级字典将子级菜单按照父级Id分组,并封装到对应父级字典的children属性中必须用,避免children为null,前端渲染时会报错。:树形结构的递归方法必须有终止条件(时返回),否则会无限递归导致栈溢出。

2026-01-05 12:18:11 567

原创 Authentication对象

对象是,主要用于等核心数据,是判断 “当前访问者是谁、是否合法、拥有哪些权限” 的核心载体。「谁」在访问系统?(用户唯一标识,如用户名、用户 ID)「凭什么」访问?(凭证,如密码、Token、证书、第三方授权码)「能做什么」?(权限 / 角色,如ROLE_ADMIN区分 “已认证” 和 “未认证”:(如游客访问);(如登录后的用户)。框架或业务代码通过对象获取用户权限,判断是否允许访问某个接口 / 资源(如本质是校验该对象中的权限集合)。从 “用户提交凭证” 到 “认证通过”,

2025-12-18 17:27:06 249

原创 mybatis-动态sql语句-<foreach>

循环遍历集合/数组,把集合元素拼接成sql片段,动态处理多个参数的场景就比如:简单场景的:构建IN条件、批量查询用户列表、一次插入多个用户,多对多关联表等等。

2025-12-16 21:03:30 355

原创 静态资源映射-spring整合

由于我们在做springboot项目时,用的前后端分离,处理原则就变成了"",避免后端直接承载静态资源存储和分发。

2025-12-05 17:47:42 369

原创 LambdaQueryWrapper

lambdaQueryWrapper基于lambda表达式,直接引用实体类的(方法引用)字段名硬编码:如果数据库改名(account改成了username),避免出现。需要用到where或者or等子句的时候的单表查询更新删除操作。类型不匹配:如果字段是Integer类型,却传入字符串值。是MP提供的lambda语法的条件构造器。分页查询(需要配合Page类)不推荐使用多表查询,功能有限B。in/not in 范围查询。很复杂,不如直接写sql语句。在1,2,3之中查询。不建议用复杂查询那种。

2025-11-24 15:16:29 388

原创 IService和ServiceImpl

是Service层的通用接口,封装了Service层的基础CRUD方法,比BaseMapper更贴近业务。page(Page<T> page,wrapper):相当于selectPage分页查询。是IService接口的默认实现类,封装了IService的所有基础方法的实现逻辑。saveBatch(Collection<T> entityList) 批量新增。updateById(T entity):相当于updateById。其次要继承ServiceImpl<Mapper,T>这个实现类。

2025-11-24 15:14:47 628

原创 BaseMapper<T>

selectById(Serializable id):根据id查询单条记录。insertSelective(T entity):只插入非空字段,其他留空。selectPage(Page<T>page,wrapper):分页查询记录。removeId(Sericalizable id):根据id删除单条记录。update(T entity,wrapper):根据条件更新。updateById(T entity):根据id更新记录。selectList(wrapper):条件查询所有记录,

2025-11-24 15:12:48 214

原创 密码加密存储(加盐)

前面报错,说让在密码的前面加{noop}涉及到密码加密存储实际项目中我们不会把密码明文存储到数据库默认使用的要求数据库中的密码格式为{id}password.他会根据id去判断密码的加密方式,但是我们一般不用这种方式,所以需要替换成:SpringSecurtity提供的注入到spring容器中,springsecurity就会自动使用该passwordEncoder来进行密码校验定义一个SpringSecurity配置类,继承WebSecurityConfigurerAdapter。

2025-11-13 10:08:43 367

原创 认证过滤器AuthenticationFilter

通过 SecurityContextHolder 将认证信息设置到当前上下文,后续接口可以通过 SecurityContext 获取当前登录用户。是实现身份验证流程的核心组件,负责拦截请求、提取认证信息(如用户名密码、令牌等)、执行认证逻辑,并将认证结果传递给后续流程。继承OncePerRequestFilter。判断封装的实体类是否为空,为空则说明未登录。为空就放行,后续的过滤器会判定为未认证。方法在一次请求处理中只执行一次。从 redis中 获取用户信息。通过请求头获取token。

2025-11-13 10:04:51 236

原创 基于Spring Security +JWT+Redis实现登录认证的流程

本文实现了一个基于Spring Security和JWT的后端登录认证系统,主要流程包括: 前端发起登录请求,后端接收并校验参数; 使用Spring Security的AuthenticationManager进行认证; 认证成功后,通过JwtHelper生成JWT令牌; 将用户信息缓存至Redis; 返回包含token的响应。 系统关键组件: 实现UserDetails接口的AdminLogin类封装用户信息 JwtHelper处理令牌生成与验证 RedisUtil封装Redis操作 SecurityCo

2025-11-11 10:56:17 760

原创 spring入门

传统编程中,对象的创建和依赖关系由代码自己控制(比如在A类中直接new 一个B类对象)而ioc是把这种控制权交出去:对象的创建、管理和依赖关系的维护,都交给一个”容器“(ioc容器)来负责,代码只需要关注自己要做什么,不需要关系依赖对象从哪来把创建对象的过程交给spring管理举个例子: 以前你做饭,需要自己买菜,切菜,炒菜(都得自己控制)现在你点外卖,只需要告诉商家想吃什么(提出需求),商家会准备号所有材料并做好给你(容器控制整个流程),这里的“外卖”模式就是控制反转。

2025-10-25 10:42:33 447

原创 Bean配置文件

在面向对象的程序中,想要使用某个对象,就需要先实例化这个对象。同样,在Spring中,要想使用容器中的Bean,也需要实例化Bean。实例化Bean有三种方式构造器实例化静态工厂实例化实例工厂实例化获取bean的三个方式根据id获取根据name获取根据类型获取。

2025-10-25 10:39:12 588

原创 java反射

反射是指:在程序运行过程中,动态的操作类以及对象的属性或者方法简单来说,反射让程序能够 "看透" 类的内部结构,并且可以在不提前知道类具体信息的情况下操作它。

2025-10-21 20:33:41 467

原创 InstanceOf

强制类型转换用于将一种数据类型转换为另一种数据类型,通常在以下情况使用:基本类型转换父子类之间转换包装类与基本类型转换。

2025-10-21 20:24:26 157

原创 java入门-对象

语法public 返回值类型(void) 方法名(参数){return 关键词return "0";返回值要和 返回值类型 对应也可以没值 作为中断方法的运行的作用同一个类上的方法可以互相调用吗?可以,仅限于普通方法。

2025-10-20 09:53:04 356

原创 ArrayList和LinkedList的区别

2. **插入和删除效率高**:在任意位置插入/删除元素时,只需要调节相邻节点的引用,时间复杂度为O(1)3. **插入和删除效率低**:在中间或开头插入/删除元素时,需要移动后续元素,时间复杂度为O(n)3. **顺序访问效率低**:由于基于链表,不能随机访问,需要从头到尾开始遍历,时间复杂度为O(n)2. **随机访问效率高**:基于数组,ArrayList通过索引访问元素,时间复杂度为O(1)4. **适合随机访问**:对于频**繁随机访问元素**的场景,ArrayList性能更好。

2025-10-17 11:47:26 318

原创 fetch入门使用

fetch函数用于发起网络请求,返回一个Promiseurl:请求的URL地址,必选参数。optionsmethod:请求方法,如GETPOSTPUTDELETE等。headers:请求头,是一个包含请求头信息的对象,例如设置请求内容类型。body:请求体,通常用于POSTPUT等请求中,需要注意的是,body的数据类型必须是BlobFormData或USVString。mode:请求模式,可选值有corsno-cors等。:请求的凭证,可选值有omitinclude。cache:请求的缓存模式,可选值有。

2025-10-15 15:51:22 361

原创 javaweb中js-ajax使用

异步、无刷新(局部刷新)

2025-10-15 15:48:42 535

原创 监听器Listener入门

帮助监控应用的运行状态、用户会话的变化等是实现特定监听器接口的java类装配web.xml注解@WebListener主要类型监听整个Web应用的创建和销毁contextInitialized(ServletContextEvent sce):在Web应用启动时调用,可用于初始化应用 级别的资源,比如创建数据库连接池,加载配置文件等:在 Web 应用关闭时调用,用于释放应用级别的资源,比如关闭数据库连接池。:监听中的添加、移除和替换事件。例如,当向中添加一个属性时,会触发方法。

2025-10-13 09:35:56 527

原创 过滤器Filter入门

使用注解,用@Order来定义优先级,order(1)>order(2)>……就是介于客户端(浏览器)和目标资源(servlet,jsp)之间。param1:filterConfig 获取过滤器的配置文件信息。也是和servlet一样,属于web服务器的组件(应用程序)@param3:filterChain 过滤器链。,前面过滤器不执行,后面的过滤器就不会执行】、通过web.xml配置的先后顺序,决定执行顺序。拦截客户端向目标资源的请求,然后处理请求。拦截目标资源对客户端的响应,然后处理。

2025-10-13 09:34:02 458

原创 会话追踪-Cookie

Cookie 是服务器发送给客户端(浏览器)的(通常≤4KB),cookie是在下的有浏览器自动存储到本地,并在后续请求中自动携带回服务器的用户状态维持浏览器提供的持久化存储的机制,防止恶意网站代码对用户设备资源造成影响,不允许网页随便访问用户资源,有的时候又希望,浏览器能持久化存储一些关键信息,用于给服务器交互,最常见的是存储用户的账户信息,所有浏览器会将针对每一个域名,在硬盘上划分一块空间,这块空间就是Cookie。

2025-09-30 11:05:52 1213

原创 单例模式入门

确保单一个类一个进程仅有一个实例,并提供一个,适用于工具类、配置管理、线程池等场景不需要实例化该类的对象,不能使用new关键词创建对象通常是自己创建自己的实例与static的区别:虽然static是实现单例的一种手段,一个强调“共享性”一个强调“唯一实例”单例模式是控制类的实例数量仅1个,通过实例访问static是类级别的共享资源,无需实例即可访问单例模式在实例创建时开始,可手动销毁static是随着类的加载而初始化,类的卸载而摧毁可通过私有构造、成员变量实现封装。

2025-09-29 19:15:00 454

原创 转发和重定向

服务器会将原请求对象和响应对象传递给目标资源,因此目标资源可以共享原请求中的数据。避免表单重复提交,(如用户刷新页面时,重定向会执行第二次请求,而非重复提交表单)若路径以/开头,代表服务器根目录,webapps目录,还需要指定完整应用上下文。如:登录成功后,跳转到首页,或者退出登录后,跳转到登录页。只能跳转到当前web应用内部的资源,无法访问外部资源。仅需在当前内部跳转,且不希望看到目标的资源的url。不需要共享请求数据,或者需要跳转到外部资源。浏览器的路径会发生变化,变成后者的路径。

2025-09-29 09:06:18 432

原创 PrintWriter在Servlet的作用

resp.getWriter()和out.println()到底做了什么?HttpServletresponse——代表要返回给浏览器的响应。resp.getWriter:获取字符输出流PrintWriter。JSON.parse(xhr.responseTest)解析。前端可以通过xhr.responseText 拿到这段文本。Tomcat吧resp打包成HTTP响应,发回浏览器。out.println():将括号内的写入响应体。Tomcat 自动把这个响应发回浏览器。把你要返回的数据写进了响应体。

2025-09-25 12:12:17 214

原创 公用表表达式-cte

common table expression 是一种在sql中使用的临时结果集,可以在select 、insert、update或delete语句中引用。

2025-09-12 08:00:00 428

原创 Mysql约束-Unique约束

UNIQUE 约束强制确保或*中的所有值都是,不允许在受拘束的列中出现重复的值一张表中可以定义多个Unique约束唯一但可以为null:与primary key不同,unique约束允许列中存在多个null值,在sql中,null代表未知或者缺失的值,两个未知的值不认为是相等的数据完整性:确保不会插入重复的意外数据。例如用户的身份证,电话号码唯一等查询性能:会为unique缺数的列创建一个唯一的索引 Unique Index ,这个索引可以极大的加快查询速度,(特别是where 和join 操作)

2025-09-11 21:00:00 519

原创 Mysql约束-Primary key约束

主键是表中唯一标识的列唯一性:必须唯一,不能重复非空性:主键值不能为NULL唯一性:一张表主键标识性:主键用于唯一标识表中的每一行数据。

2025-09-11 13:00:00 499

原创 Mysql约束-CHECK 约束

【代码】Mysql约束-CHECK 约束。

2025-09-11 07:45:00 380

原创 Mysql约束-Foreign key约束

外键用于建立的关联关系,他指向另一个表的主键,用于维护数据的。

2025-09-10 22:33:02 354

原创 Stream流

而是像是一个Iterator。用于对数据源(数组,集合、I/O等)进行一系列式的操作核心思想:声明式编程你只需要告诉流 “你要做什么”而不用关心怎么做(手动写循环和条件判断等)特点:不修改源数据,只会返回一个持有结果 的 新Stream惰性执行和即时执行:Stream的操作分为和 终端操作中间操作如:(filter,map,sorted)不会立即执行任何处理,只是返回一个新的Stream,形成一个流水线,直到遇到终端操作,整个流水线才会被一次性的执行。

2025-09-05 14:13:17 1041

原创 基础线程入门

1.是否是多个线程2.是否有共享的数据3.是否有现程安全问题。

2025-09-04 12:19:37 737 1

原创 Java-数据类型 内存分配

java 是强类型语言,在声明时需要明确数据类型,不同数据类型不能计算。

2025-08-18 09:20:07 578

原创 javascript 事件流的捕获和冒泡

stopPropagation()的作用首先确实都是阻止事件进一步传播在捕获阶段调用时,会阻止事件向下传播到目标在冒泡阶段调用时,会阻止事件向上传播到父元素事件流是 捕获阶段-》目标阶段-》冒泡阶段且捕获阶段是从外到内目标阶段:触发目标元素的监听器(按注册顺序,先捕获后冒泡)冒泡阶段是从内到外回归问题冒泡阶段的可阻止父元素触发。捕获阶段的可阻止子元素触发差不多测试完就明白 事件冒泡的原理了 然后再阻止……

2025-08-12 19:32:44 681

原创 表单验证和正则表达式

普通定义(字面量)const reg = / 123 /i (i, g,m,匹配模式)构造函数//相当于 /123///相当于/123/i;\d:数字字符 相当于[0-9]\w:相当于[a-zA-Z0-9_]中的任意字符\D:非数字字符[^0-9]\W:相当于[^a-zA-Z0-9_]\s:匹配任意空白字符(空格,制表符,换行符等)\S:匹配任意非空白字符。

2025-08-12 09:48:48 1012

空空如也

空空如也

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

TA关注的人

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