- 博客(18)
- 收藏
- 关注
原创 mvcmatchers和antmatchers区别
3.对于路径后面的斜杠,ant是严格匹配,mvc是自动兼容,即/user/和/user在mvc中视为同一路径。1.mvc支持路径变量如:/user/{id},ant不支持。2.mvc安全性更高。
2025-03-26 19:57:09
77
原创 手算next数组值
解析:不包含最后一个字符 ,所以第一个是a!=b 为 0 ,2的时候就是ab=ab(不包含最后一位a) 长度为2所以为2;长度为三的时候前缀为aba,后缀为bab,因为 aba!=bab ,所以值为0,所以5的next为2+1=3。第i个字符的next值=1~i串中最长相等前后缀长度+1。1.串的前缀:包含第一个字符且不包含最后一个字符的子串。2.串的后缀:包含最后一个字符且不包含第一个字符的子串。特殊情况next[1]=0,next[2]=1。
2024-10-18 17:07:43
540
原创 @Resource导致的启动报错bug
解决方式:将@Resource替换为@AutoWired或者将别名替换成别的,这个错误出现的原因就是因为@Resource不允许别名重复。
2024-09-24 16:36:28
269
原创 easyExcel根据注解导入报错Convert data com.alibaba.excel.metadata.data.ReadCellData@fd141c53 to class java.la
解决方式:在注解后加入对应的converter。
2024-09-20 10:05:40
1610
原创 MySQL 报错Illegal mix of collations (utf8mb4_general_ci,IMPLICIT)
解决方案:修改表的编码。
2024-09-13 10:23:02
204
原创 juc并发编程
从waiting状态到runnable需要执行lockSupport.unpark()或者join的线程运行结束或者被中断时才可以进入runnable状态;对于timed waiting而言,它存在超时机制。callable只能在ExecutorService的线程池中跑,但有返回结果,也可以通过future对象查询执行状态。//submit不会立马抛出异常,而是会储存起来,直到调用get的时候才会出来。//execute会在子线程中抛出异常,在主线程捕捉不到。//不会立马关闭,会等待执行完之后才关闭。
2024-09-13 10:19:11
230
原创 线程和进程
run方法的作用是存放任务代码,执行start方法会产生新线程;run方法可以被执行无数次,而start方法只能被执行一次,原因在于线程不能被重复启动。7.并行:多核心同时处理多个线程(一个核心对应一个线程),同时执行不同的任务,真正的同时执行。14.yield:暂停正在执行的线程对象,并执行其他线程,但是否让出,还是由调度器决定。2.一个进程可以包含多个线程,每个线程都可以独立执行不同的任务,但他们共享进程的资源。1.线程是操作系统中的基本执行单元(能够执行的最小代码块)8.串行:按先后顺序执行。
2024-07-24 21:57:05
199
1
原创 springcloud的filter过滤器
2.x-request-atguigu1,atguiguValue2------>guigu1为name,后面的是value。3.add表示添加,也可以使用removeRequestHeader对请求头进行移除。-空参构造方法,内部调用super。5.addRequest Parameter添加请求参数。6.removeRequestParamer请求删除参数。9.defaultfilters:全局配置,作用于全局。-重写apply方法。8.也可以对path进行重新赋值操作,在配置中。
2024-07-22 21:41:16
238
原创 gateway
2.springcloud gateway组件的核心是一系列的过滤器,通过这些过滤器可以将客户端发送的请求转发(路由)到对应的微服务。5.内置routepredicate语法:after语法(茅台抢购)在某个时间点之后才可访问。6.cookie、header、host(这个表示只有里面的主机可以访问)1.gateway可以干什么:反向代理、鉴权、流量控制、熔断、日志监控。代表必须有查询参数才能访问 \d+ 表示需要是整数才能访问。10.method表示是哪些请求方式才能访问。4.一开始会加载默认的路由。
2024-07-10 21:43:42
186
原创 服务熔断及降级
滚动时间窗:允许固定数量的请求进入(如疫苗取四个数据相加,超过25就over)超过数量就拒绝或者排队:缺点,容易在某个时间节点突然涌入大量请求,导致系统过载,比如最后一秒是该段的结束同时也是下一段的开始,所以可能会导致系统崩溃。断路器使用滑动窗口来存储和统计调用的结果,可以选择基于调用数量的滑动窗口或者基于时间的滑动窗口。基于数量的统计了最近n次调用的返回结果,基于时间的统计了最近n秒的调用结果。常见的限流算法:漏桶算法:漏出的速率是规定不变的,对突发性的流量缺乏效率。
2024-06-25 20:53:56
203
原创 openfeign通用步骤及高级特性
6.openfeign日志打印级别:none、basic(请求方法、url、影响状态码及执行时间)、headers(包括basic及请求和响应的头信息)、full(还有请求和响应的正文和元数据)2.服务消费者-》调用含有@FeignClient注解的api服务接口-》服务提供者。2.修改默认超时时间需要修改yml配置:connectTimeout 连接超时时间。初次间隔100ms、最大间隔、最大请求次数(1+2)readTimeout:请求处理超时时间。1.默认超时时间为60s。
2024-06-13 21:27:17
169
原创 springcloud
loadbalancer服务步骤:先选择consul Server从服务端查询并拉去服务列表,知道了他有多个服务实现是完全一样的,这几个服务默认轮询调用谁都可以正常执行。loadbalancer在调用微服务接口的时候,会在注册中心上获取注册信息服务列表之和缓存到jvm本地,从而在本地实现rpc远程调用。Nginx是服务器端负载均衡,客户端所有的请求都会交给Nginx,由Nginx实现转发请求。loadbalancer本地负载均衡与Nginx服务器端负载均衡的区别。
2024-06-03 21:47:36
415
原创 dependencyManagement和dependencies的区别
maven会沿着父子层次向上走,知道找到一个拥有dependencyManagement元素的项目,然后使用里面指定的版本号。使用POM.xml中的dependencyManagement元素能让所有在子项目中引用一个依赖而不用显式的列出版本号。注意:dependencyManagement只是声明依赖,并不实现引入,子项目中需要显式的声明所需要的依赖。maven使用dependencyManagement元素来提供了一种管理依赖版本号的方式。通常会在一个组织或者项目的最顶层的父POM中看到其元素。
2024-05-24 17:34:55
111
原创 activity工作流判断下一节点的下一节点是否为结束节点
/将网关信息与用户任务进行分类存储(放于JVM堆中)//固定出线的(sourceRef)//获取UserTask节点的出线。//放置endEvent的nodeId。//变量所有的UserTask节点。//用户任务节点id。
2024-05-22 17:21:34
726
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人