自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 解决No modifications are allowed to a locked ParameterMap

你试图将一个 unmodifiableMap 类型的map进行修改,这显然不行,想修改request的请求参数,这里提供一个方案:

2024-11-25 11:39:41 421

原创 解决依赖多版本共存,如何使用合适的版本问题

同时在你要使用的模块下的pom,在不改变原来依赖的条件下,再添加一个依赖5.7.11。达到的效果:我自己写的代码使用一个版本,而依赖内部使用另一个版本。解决办法:在你的项目根目录下的pom的指定一个版本,6.3.3。你自己的代码去使用这个依赖时,使用的是5.7.11这个版本,而这个依赖去使用时,使用的是6.3.3的版本,这个依赖是存在于这个依赖内部。

2024-11-21 11:18:49 411

原创 如何自实现一套OAuth2.0认证流程分析

2.2 根据请求的授权方式,遍历所有的转换器(实现自己的个性化转换器),得到自己的转换器(通过重写的support方法判断)2.5 有了这个对象,认证管理器接下来会去遍历认证提供值,得到你的个性化认证提供者。2.4 通过参数校验后,就可以创建自己的个性化登录认证对象了,如。2.7 验证通过后,会将你的请求参数构建成认证对象,进行认证,如。2.3 拿到转换器后,接下来一般会去校验自己的个性化参数,如。2.6 拿到认证提供者后,去验证该授权方式是否支持,如。1.2 获取客户端支持的认证方式。

2024-11-06 15:04:59 337

原创 自实现切面处理重复请求

一、我的设计原理1.请求开始前,根据key查询 查到结果:报错 | 未查到结果:存入key-value-expireTime2.请求结束后,直接删除key ,不管key是否存在,直接删除 是否删除,可配置3.expireTime过期时间,防止一个请求卡死,会一直阻塞,超过过期时间,自动删除4.此方案直接切的是接口请求层面。5.过期时间需要大于业务执行时间,否则业务请求1进来还在执行中,前端未做遮罩,或者用户跳转页面后再回来做重复请求2,在业务层面上看,结果依旧是不符合预期的。6.建议delKey

2024-11-05 10:14:19 348

原创 分享一些在部署k8s集群时遇到的问题

k8s拉取镜像失败,多半是docker镜像源失效了,需要经常更新,把这里的DNS的替换为阿里云的DNS地址(223.5.5.5)kubectl get nodes时出现:The connection to the server localhost:8080 was refused - did you specify the right host or port?发现是报错信息提cni未安装。

2024-11-01 15:57:05 898

原创 项目第三方登录整合(以gitee为例)

使用:JustAuth简要介绍:JustAuth,如你所见,它仅仅是一个的,它可以让我们脱离繁琐的第三方登录 SDK,让登录变得JustAuth 集成了诸如:Github、Gitee、支付宝、新浪微博、微信、Google、Facebook、Twitter、StackOverflow等国内外数十家第三方平台。更多请参考。

2024-11-01 15:32:07 620

原创 k8s : 在master节点部署服务

k8s集群init后,你的master节点会被固定分配污点taint信息,这个污点的作用是让没有设置容忍的pod不会被调度到这个节点,因此我们的服务一般不会被调度到master节点。部署多个work节点过于麻烦,于是打算直接在master节点部署服务测试。为none说明污点被去除,此时master节点可被调度。方法1:直接去除master节点的污点信息。# 3.查看服务状态 (查看分配的端口)# 3.测试服务(ip:port)方法2:为你的pod设置容忍。部署nginx服务测试。# 1.部署nginx。

2024-10-12 11:14:21 551 1

原创 算法学习(七)判断一个二叉树是否为完全二叉树

定义一个全局的深度参数,对该二叉树进行前序遍历,当第一次出现null值时,记录当前的深度,之后再遍历到该深度的节点时,如果不是null值,说明不是完全二叉树,如果出现null值的深度不是记录的值,说明不是完全二叉树,如果超过记录值的深度,说明不是完全二叉树(略)完全二叉树的定义:若二叉树的深度为 h,除第 h 层外,其它各层的结点数都达到最大个数,第 h 层所有的叶子结点都连续集中在最左边,这就是完全二叉树。数据范围:节点数满足 1 \le n \le 100 \1≤n≤100。

2023-10-24 15:02:21 1060

原创 算法学习(六)判断二叉树是否为二叉搜索树

定义一个全局节点保存当前节点的根节点信息,递归该二叉树,判断当前节点的左节点与右节点是否满足搜索树条件,注意:防止左子树的当前节点的右节点超过根节点,需要额外的进行判断,右子树也同理。二叉搜索树满足每个节点的左子树上的所有节点均小于当前节点且右子树上的所有节点均大于当前节点。中序遍历二叉树,观察结果是否有序来判断是否为二叉搜索树(略)给定一个二叉树根节点,请你判断这棵树是不是二叉搜索树。

2023-10-24 14:45:38 295

原创 算法学习(五)将两颗二叉树进行合并

以tree1为基础,将tree2上的值或节点加到tree1上,完成合并,递归过程中,当tree1的当前节点为null时,将tree2的节点接在tree1上,当tree2的当前节点为null时,直接返回,都不为空,则将tree1的值加上tree2的值,完成二叉树的合并。已知两颗二叉树,将它们合并成一颗二叉树。合并规则是:都存在的结点,就将结点值加起来,否则空的位置就由另一个树的结点来代替。进阶:空间复杂度 O(1)O(1) ,时间复杂度 O(n)O(n)

2023-10-24 14:23:52 449

原创 算法学习(四)将一颗二叉搜索树转排序的双向链表

数据范围:输入二叉树的节点数 0 \le n \le 10000≤n≤1000,二叉树中每个节点的值 0\le val \le 10000≤val≤1000。二叉搜索树的中序遍历正好为排序的结果,通过中序遍历,递归过程中,通过pre节点保存上一节点数据,完成转换。要求:空间复杂度O(1)O(1)(即在原树上操作),时间复杂度 O(n)O(n)输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。

2023-10-24 14:04:50 161

原创 算法学习(三)利用前序遍历的思想求解层序遍历

在前序遍历的基础上,增加一个深度参数,结果用集合保存,保存位置为相应的深度索引。给定一个二叉树,返回该二叉树层序遍历的结果,(从左到右,一层一层地遍历)给定的二叉树是{3,9,20,#,#,15,7},

2023-10-24 11:55:23 79

原创 算法学习(二)递归求解字符括号匹配问题

在递归字符串的过程中,采用stack保存当前字符,每一次递归将字符与集合最后一个元素进行匹配,如果匹配成功,则清除最后一个元素或添加当前元素,进入下一次递归,最后保证集合为空,说明字符串合法。给出一个仅包含字符'(',')','{','}','['和']',的字符串,判断给出的字符串是否是合法的括号序列。括号必须以正确的顺序关闭,"()"和"()[]{}"都是合法的括号序列,但"(]"和"([)]"不合法。要求:空间复杂度 O(n)O(n),时间复杂度 O(n)O(n)

2023-10-24 11:40:30 159

原创 算法学习(一)归并排序求解N个数中最大的K个数

给定一个长度为 n 的可能有重复值的数组,找出其中不去重的最小的 k 个数。例如数组元素是4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4(任意顺序皆可)。数据范围:0\le k,n \le 100000≤k,n≤10000,数组中每个数的大小0 \le val \le 10000≤val≤1000。要求:空间复杂度 O(n)O(n) ,时间复杂度 O(nlogk)O(nlogk)采用归并排序的思想,将数组分解成若干数组,再排序,取出前K个数。

2023-10-24 11:29:39 136

原创 若依注解学习(二)@DataScope

判断role的数据权限,生成sql条件append,or。一般写在service层的一些需要权限控制的业务方法上,针对部门和用户的权限,生成sql条件。2.安全框架中获取当前的用户信息,包括用户,部门,角色信息。dao层 ${param.dataScope} 注入条件。设置切入点,@Before,任何加了该注解的方法。遍历用户的role信息,添加权限。添加到baseEntity的param。3.判断是否管理员,非管理员进行处理。从注解获取权信息,进行过滤。dao层注入,实现数据权限的控制。

2023-09-21 14:49:43 418

原创 若依注解学习(一)@Log

execute:参数为一个Task,该Task通过任务工厂AsyncFactory生产你要执行的任务·core中,core是ruoyi框架的核心代码,在aop中对操作进行处理,其中,会调用安全框架来。写在方法上,通过aop切面编程,在方法执行前、方法执行完、方法异常的时候做处理。common中,出现在公共模块,若出现在其他模块,极其容易出现模块相互依赖的问。在我们使用ruoyi的代码生成器的时候,在controller的每个方法出现。设置方法名,请求方式,根据Log上的参数设置信息。

2023-09-18 11:28:39 1032

原创 解决多模块导致security配置失效

security模块的包名必须为:com.wwb.XXX。例如主模块启动类包名为:com.wwb。

2023-09-15 16:21:21 272

原创 解决Docker部署SpringBoot项目时各容器的相互调用

但部署到docker后,因为 容器中的ip地址 和 宿主机的ip地址 是不同的,所以当 nacos 用 localhost 时,其实对应的是 nacos容器的ip地址,所以调用 localhost 时,并不能通过 宿主机的ip地址调用8848端口映射到容器中8848端口.因为我的nacos,mysql等服务是部署在docker的容器中的,通过端口映射到我的主机上,所以在java -jar的时候可以正常连接。但是当我将这个jar包打包成镜像部署到docker时,项目报错,提示信息大概就是,如naco连不上。

2023-07-18 20:20:55 1009

原创 Spring加载bean的个人理解

把这个bean注入,完成bean的加载,(同时这个earlySingletonObjects还可以保证所有依赖我的bean中的对象是同一个对象,保证单例),这个bean。扫描完后,对这个map进行循环,通过每个beanDefinition中的class信息,是否是预加载,是否是单例,是就把key做beanName,通过class对象。如果属性上有DI注解,如@Autowried,就先看这个对象是否是一个已经注册的bean,就是在beanDefinitionMap中根据类型找,没有就报错,有多个,

2023-07-14 15:50:03 773 2

原创 java面试复习

持续更新【doc文档】

2023-07-13 14:22:03 768

原创 Lucene的全文搜索及高亮显示

【代码】Lucene的全文搜索及高亮显示。

2023-07-05 15:02:17 792

原创 jmeter安装与中文配置及最基本使用

解压后,找到bin目录下的jmeter.properties。在线程组添加取样器,选择http请求,发送http请求。添加线程组:即发送http请求的线程组,用来设置线程。在线程组添加查看结果树,用来查看http请求的响应。只能下载Binaries下的,我选择zip格式。修改JSON可将响应实体转成JSON格式。使jmeter默认使用中文简体。

2023-04-25 21:11:45 274

原创 nacos解决shared-configs下的共享配置文件无法实时更新

使用@RefreshScope注解,服务启动后,在nacos配置中心,修改shared-configs下的配置文件mysql.yml,数据源无法实时更新。nacos针对该服务只监听了以上3个配置文件,而我的mysql.yml并没有被监听。进入Config类,发现他有多个构造方法,怀疑问题出现在这里,于是找到问题所在,只需要在yml构造时调用其他的构造,即可。尝试进入shared-configs发现调用了这个方法。

2023-04-16 10:05:34 2807 4

原创 漏桶算法和令牌桶算法

这意味,面对瞬时大流量,该算法可以在短时间内请求拿到大量令牌,可以处理瞬时流量,而且拿令牌的过程并不是消耗很大的事情。算法思路简单,水(请求)先进入到漏桶中,漏桶以一定的速度出水(接口有响应速率),当水流速度过大直接溢出(访问频率超过接口响应频率),然后就拒绝请求,可以看出漏桶算法能强制限制数据的传输速率。令牌桶算法的原理是系统会以一个恒定的速度往桶里放入令牌,而如果请求需要被处理,则需要先从桶里获取一个令牌,当桶里没有令牌可取时,则拒绝服务。桶中请求数有限制,满了则丢弃,桶以一定速度处理请求。

2023-04-14 20:44:32 1318

原创 SpringBoot、SpringCloud、Spring Cloud Alibaba版本对照表(详细)

由于 Spring Boot 3.0,Spring Boot 2.7~2.4 和 2.4 以下版本之间变化较大,目前企业级客户老项目相关 Spring Boot 版本仍停留在 Spring Boot 2.4 以下,为了同时满足存量用户和新用户不同需求,社区以 Spring Boot 3.0 和 2.4 分别为分界线,同时维护 2022.x、2021.x、2.2.x 三个分支迭代。如果不想跨分支升级,如需使用新特性,请升级为对应分支的新版本。*代表最新的。

2023-04-14 19:21:59 11407

原创 A component required a bean of type ‘xxx‘ that could not be found.

3.若不在同一模块,在启动类加上包扫描 @ComponentScan("xxx")1.springboot扫描的范围是与启动类同级别的包。2.若在同一模块,检查是否加上了IOC注解。原因:spring boot注入失败。

2023-04-14 19:00:46 969

原创 jdkproxy的简易实现

2.测试前置增强(代理对象调方法前置增强,输出时间)

2023-03-12 10:56:46 130

原创 jdbcTemplate获取自增列

如图为:在添加一条数据时返回这条数据自增的id值。

2023-03-12 10:49:06 576

原创 @ConfigurationProperties()与@Value

3.@EnableConfigurationProperties(ConnectionProperties.class):让使用了 @ConfigurationProperties 注解的类生效, 并且将该类注入到 IOC 容器中,交由 IOC 容器进行管理。2.@ConfigurationProperties("yc.conn"):将配置文件中的yc.conn属性与加了这个注解的Bean的属性绑定。5.@Value:写在属性上,读取配置文件到属性上,用于配置项少的情况。

2023-03-12 10:39:04 363

原创 tomcat服务器的文件上传功能实现

目录一、场景:展示向服务器添加商品,商品信息包括图片,以及其他信息1,获取数据2.添加数据3.传回数据到前台二、附:配置CATALINA_HOME三、效果展示 1,获取数据2.添加数据3.传回数据到前台略按‘i’进入insert模式,在最后加入如:/usr/local/tomcat/apache-tomcat-9.0.68按ESC退出insert模式,按‘:wq’,保存退出使配置生效新建一个在webapps下新建upload文件夹可以看到:pid为3的这条数据

2022-12-03 15:16:56 2129

原创 解决:ERROR 1045 (28000): Access denied for user ”root”@”XXX”

发现目前我的Update权限为Y,其他权限都是N,这表示可以我们可以更新权限。虽然你使用的是root用户,但是他的权限被改了,导致无法正常操作数据库。这时退出mysql,再连接发现连接mysql失败,说明把远程访问关了。第一步:开启mysql远程访问,在可视化界面操作。权限都在这个表里,很长,在ssh界面无法正常显示。host表示在任意ip都可以访问root用户。重新登录mysql,等了一会,发现没有报错了。记得最后把远程访问关了,比较安全。我直接把所有的权限都改成Y。2.查看root的权限。

2022-11-06 15:45:27 621 1

原创 vue获取methods中的返回值

【代码】vue获取methods中的返回值。

2022-11-05 10:47:29 576

原创 解决Gson转json对象,null值的处理

【代码】解决Gson转json对象,null值的处理。

2022-10-30 21:09:22 2810

原创 Ubuntu安装redis

(2) 再查找protected-mode yes 把yes修改为no 以上两个操作允许用户从本机访问远程的阿里云。(3) 同时将requirepass foobared取消注释#,改为自己的密码。(1) 找到bind 127.0.0.1 ::1,把这行前面加个#注释掉。输入字母i, 表示插入模式,才能改写以下的内容。按esc 输入:wq保存退出。设置你的root密码,要输两次一样的密码。注:配置文件打开错误多半是权限问题。1. 然后修改配置文件。再修改配置文件就好了。

2022-10-24 20:00:07 569

原创 操作表时获取被AUTO_INCREMENT修饰的参数:

PreparedStatement.RETURN_GENERATED_KEYS 获取自动生成的id号。

2022-10-22 17:25:33 111

原创 解决tomcat出现一个或多个筛选器启动失败。

说一下我遇到的情况:在未在我的项目中加入filter时,tomcat运行正常,加入后tomcat无法正常启动。原因:请查看你所写的filter类中是否有抽象类,若有,请检查你是否在这个抽象类写了注解。导致tomcat去实例这个抽象类,而这是一个抽象类无法实例化,tomcat无法正常启动。就是这个:@WebFilter("*.action")

2022-10-16 10:02:56 1200

原创 解决插入mysql数据库时,时分秒丢失

请检查你建的表的日期字段的数据类型是否是datetime,date类型只保留日期,不保留时间。这是datetime类型。

2022-10-11 20:15:27 1031

原创 自定义vue(2)

【代码】自定义vue(2)

2022-10-08 16:49:02 140

原创 自定义vue(1)

实现的双向数据绑定,该方法是es5提供的新功能,不支持ie8及以下版本。当你这样操作的时候,其实会帮你调用name的get方法,至于为什么是空值,是因为我们把name属性进行了修改,你可以指定value来赋新值。当你这样操作的时候,调用了set方法修改了person.name的值,同时页面显示了张三。如图,我们把person对象的name属性进行了一些修改,增加了get set方法。这个方法可以动态的修改一个对象中属性的值,以及增添方法等。

2022-10-08 16:39:22 387

原创 ajax技术详解

AJAX 不是新的编程语言,而是一种使用现有标准的新方法。AJAX 最大的优点是在不重新加载整个页面的情况下,可以与服务器交换数据并更新部分网页内容。AJAX 不需要任何浏览器插件,但需要用户允许JavaScript在浏览器上执行。

2022-09-19 19:52:56 467

空空如也

空空如也

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

TA关注的人

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