自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(67)
  • 资源 (1)
  • 问答 (2)
  • 收藏
  • 关注

原创 如何使用arthas监听项目性能耗时?

3.点击 “启用或关闭 Windows 功能”:在 “程序和功能” 窗口中,你应该能够看到一个链接,名为 “启用或关闭 Windows 功能”。2.进入 “程序” 或 “程序和功能”:根据你的 Windows 版本,可能会有不同的选项名称。你可以通过查找类似于 “程序”、“程序和功能”、“卸载程序” 的选项来进入。在这里找到 “Telnet 客户端” 选项,并勾选它。5.点击 “确定” 或 “应用”:勾选完 “Telnet 客户端” 后,点击 “确定” 或 “应用” 按钮来保存更改。

2023-12-23 15:51:55 565

原创 Jmeter如何测试需要登录的接口

首先说明本系统的登录采用的是session,但是无论是什么登录步骤都是大差不差的。

2023-12-23 15:50:53 1292

原创 为什么配置文件中的classpath路径没有被解析成功?

@Value的时候使用Resource类型来接收。在.properties配置文件中。:相对路径 替代classpath。注入这个path使用,会报错。后续如果需要使用路径。

2023-12-12 18:27:25 487

原创 简单的实现 mybatisplus实现真实的批量插入

总所周知,mybatisplus 的saveBatch()是一个伪批量插入,性能比较差。真实的批量插入需要for循环读取value 拼装成一条insert语句才插入。下面我将简单的介绍 使用mybatisplus实现真实的批量的步骤。

2023-12-12 18:26:51 718

原创 关于session的不断变化问题

后来查资料发现确实是跨域的问题虽然localhost会被解析成127.0.0.1访问,但是还是会跨域,跨域你的域名 端口 协议变动了就是跨域。跨域让cookie无法被传递,sessionId是存储再cookie中的,所以后端每次都认为请求是新的请求没有sessionId就直接创建了。我一看项目源码,验证码生成后存储再session中了,等用户发送请求验证的时候sessionId变化了,导致通过session获取验证码是一个null。经过各种测试发现sessionId每次请求进来都是生成一个新的。

2023-11-11 19:53:11 951

原创 1366 - Incorrect string value: ‘\xE5\xB9\xBF\xE5\x85\xB0...‘ for column编码错误

1366 - Incorrect string value: ‘\xE5\xB9\xBF\xE5\x85\xB0…自己修改了数据库的字符集解决不了问题,因为文件已经创建了,文件的编码也需要修改。看到很多博主需要该了表又要改列的字符集很是麻烦。原因是数据库创建的时候使用的默认编码latin1,导致表和字段的编码格式都是这种编码,显然这种编码不支持中文。alter database 数据库名 character set utf8;这里可以直接通过一下两个命令直接解决,修改表和字段的字符集。

2023-11-09 11:43:04 557

原创 什么是内存泄漏,为什么threadlocal会造成内存泄漏?

NIO 提供了非阻塞的 I/O 操作,通过使用 Selector、Channel 和 Buffer 等关键概念,基于线程池,可以使用少量线程处理大量连接。而static final 修饰threadlocal有些人说能够解决内存泄漏,修饰之后threadlocal对象不会被回收,可key为null的线程就不会发生,后续就可以复用这个threadlocal。这样不就会没有内存泄漏了吗。但是对于其它的web服务器和高版本的tomcat其实内部用到的是NIO,基于线程池的思想,线程可能会被复用,而不是销毁。

2023-10-22 17:42:43 154

原创 MySQL有时候命中索引有时候又不命中

最佳左前缀法制:如果索引了多列,要遵循最左前缀法则,指的是查询从索引的最左前列开始并且不跳过索引中的列。如组合索引为A B C 只有ABC,AB,AC,A会名中组合索引,命中数量不一样分别是3,2,1,1命中数量越多查询性能越好。内部有一个优化器,优化器根据表的大小、索引情况、统计数据等信息,选择最佳的执行计划,以最小的代价返回结果集。那么select 字段1,字段2 索引到底什么走索引,什么时候不走索引啊?对于组合索引,尽量选择能够包含在当前查询中where子句中更多字段的索引。

2023-10-15 15:53:47 361

原创 RocketMQ

RocketMQ是一个开源的分布式消息队列系统,主要用于解决高并发、高可靠性的消息通信场景。在Java后端中,RocketMQ的作用主要有以下几个方面:1.异步解耦:RocketMQ可以将消息的发送和接收进行异步解耦,提供了可靠的消息传递机制。在高并发场景下,通过使用RocketMQ,可以将消息发送方和接收方解耦,提高系统的稳定性和可伸缩性。2.流量削峰:在高并发的情况下,如果直接将请求发送到后端服务,可能会导致服务过载。

2023-10-12 11:39:00 486

原创 rabbitmq

消息从发送,到消费者接收,会经理多个过程:针对这些问题,RabbitMQ分别给出了解决方案。也就是面试题常问的如何rabbitmq如何保证消息的可靠性?

2023-10-11 21:41:32 628

原创 科普rabbitmq,rocketmq,kafka三者的架构比较

拉取消息:RocketMQ 的消费者(Consumer)通过订阅 Topic 和指定消费者组(Consumer Group)来拉取消息。发送消息:RocketMQ 的生产者(Producer)将消息发送到指定的 Topic,并不能直接选择要发送到的队列,而是由 Broker 负责将消息分发到相应的队列中。发送消息:Kafka 中的生产者(Producer)将消息发送到指定的 Topic,并选择要发送到的 Partition。3.主题(Topic):主题是消息的逻辑分类,每个消息都属于一个特定的主题。

2023-10-04 18:04:51 2187 1

原创 seata环境的安装

此问题是因为开发者为seata1.3.0添加字体颜色,而在window中的shell脚本内不显示发生的乱码错误。3.修改日志配置文件,否则启动控制台乱码(如果是window的情况需要修改如下配置)1.给每个需要进行分布式事务控制的服务的数据库增加一个undo_log表。4.修改registry.config文件。5.启动seata-server。修改内容如下:[注意需要把下面。nacos的IP地址。

2023-09-12 22:30:50 231

原创 支付宝沙箱调用错误

错误代码 missing-signature-config 错误原因: 应用未配置对应签名算法的公钥或者证书。支付宝沙箱调用参数就三个APPID,用户私钥,支付宝公钥,如果你的 gatewayUrl和支付宝网关地址配置不一样。merchant_private_key: 用户私钥。alipay_public_key: 支付宝公钥。密钥和公钥不对,注意要首格空格,所有都在一行。调试错误,请回到请求来源地,重新发起请求。

2023-09-09 21:07:33 463

原创 分布式秒杀方案--java

前提:先把商品详情和秒杀商品缓存redis中,减少对数据库的访问(可使用定时任务)秒杀商品无非就是那几步(前面还可能会有一些判断,如用户是否登录,一人一单,秒杀时间验证等)1一人一单2.判断库存3.减库存4.创建订单。

2023-09-08 15:02:26 867

原创 如何获取用户的ip地址

前端—>nginx—>网关—>服务。一般情况下后面三个获取的ip地址只能是前一个的ip 如网关只能获取到nginx的ip。所以一般情况下我们都需要从前端获取用户ip,再通过header传递下去。用户的 IP 地址可能会被隐藏或者修改,例如使用代理服务器、VPN 等工具,这样就无法准确获取用户的真实 IP 地址。网关配置全局拦截器 implements GlobalFilter 传递ip。

2023-09-02 10:14:09 5442

原创 mybatisplus的id生成策略失效问题

现在直接说结论,原因是之前没有设置生成策略默认生成策略是雪花算法,然后如果我们使用自增的使用由于上一个数已经变得很大了,所以导致数据库的策略的自增无法生成(这里具体不知道)。点击保存后会系统会帮你 把这个值 设置为数据库表中最大的id。你也可以修改换回雪花算法也能生效 自增-------->雪花不会有问题 如果是雪花------>自增 就需要用到上面的方法了。然后就结束了,这样就可以正常自增,如果你数据库设置了自增这里没有设置会直接报错。1.首先找到该表,把雪花算法的生成的id 的数据删除。

2023-07-30 15:25:30 2442 3

原创 公共字段的填充

方式1,通过mybatis-plus提供的MetaObjectHandler进行填充。根据FieldFill的枚举类引用即可,简单容易上手。以上的一些字符串常量可以直接把类名去掉再加上引号即可。自定义注解,检测对注解@AutoFill 的使用。使用value的值是update或insert。方式二:通过spring AOP。

2023-07-28 13:43:02 197

原创 敏感字体和图片的敏感字体的识别-----------源自黑马头条资料P76

敏感字体识别 利用DFA算法(类似于字典树的结构)3.使用工具类匹配敏感字体。

2023-07-07 10:54:47 150

原创 openfeign的几种实现方式

总结:其实feign远程调用就是一个服务调用另一个服务的controller的接口方法。第一种: 假如A 服务调用B服务的某个方法,如果不建立新的feign模块,可以进行一下步骤。1.在feign接口模块,新建feign接口,这个接口和第一种方式的接口是一样的,例如。第二种:多增加了一个feign接口模块,使得其他模块如果想远程调用同一个接口时可以。2.在B服务不用额外写controller,直接新建feign的实现类。,谁调用谁新建feign接口,其他模块如果想远程调用同一个接口时,需要。

2023-07-06 15:43:34 791

原创 日期格式化不起作用 2022-09-18T05:25:30.000+00:00

JsonFormat(pattern = “yyyy-MM-dd HH:mm:ss”)一般版本问题或依赖冲突不起作用。这个配置会在java对象传输给web前端的时候对日期的字段进行序列化。如果是数据库里的日期格式化,请你确保您的字段格式是按照以下要求。2.数据库字段类型datetime。1.对象类型Date。

2023-07-02 11:16:24 256

原创 OAuth2,jwt,springsecurity之间的区别和联系

OAuth 2.0 的核心概念包括资源所有者 (Resource Owner)、客户端 (Client)、授权服务器 (Authorization Server) 和资源服务器 (Resource Server)。Spring Security 可以与 OAuth 2.0 和 JWT 等技术集成,以实现更加灵活和安全的身份验证和授权流程。OAuth 2.0、JWT (JSON Web Token) 和 Spring Security 是安全相关的概念和技术,它们有着不同的功能和用途。

2023-06-24 20:27:27 1563

原创 spring.factories配置文件和@configuration

2.在扩展性方面,假设a模块被b项目引用,a项目都中有@configuration和spring.factories文件,那么spring.factories的配置会自动生效,但是带有@configuration的类确需要使用@ComponentScan指定路径才会被扫描。1.spring.factories文件主要用于实现Spring的自动装配和扩展,而@Configuration注解主要用于定义应用程序的配置信息,并且通常与Java类结合使用。

2023-06-24 17:41:09 880

原创 redis面试重点------源于黑马

缓存穿透是指查询一个数据,在redis和MySQL中都不存在。也就是查询一个数据不存在的数据,导致每次请求都会到达数据库,给数据造成很大的压力。解决方案:1.当查询一个不存在的数据时缓存一个空数据,这样请求就只会查一次库,把流量转移到了redis中优点:实现起来,简单方便缺点:消耗内存,可能会造成数据短期不一致,缓存承受压力增加2.布隆过滤器什么是缓存击穿?某个热点key过期了,数据同步慢,导致请求全部到达数据库解决方案1.互斥锁2.逻辑过期。

2023-04-30 16:36:37 795 1

原创 面试必备技能,springsecurity

1.WebSecurityConfigurerAdapter:首先会调用WebSecurityConfigurerAdapter中的configure(HttpSecurity http)方法,用于配置哪些URL需要被拦截,哪些URL不需要被拦截。如果用户访问一个受保护的URL,则Spring Security会重定向到登录页面。

2023-04-24 22:12:14 337

原创 认证授权SpringSecurity

OAuth2是一个关于授权(authorization)的开放网络标准,在全世界得到广泛应用,目前的版本是2.0版。1它为用户资源的授权提供了一个安全的、开放而又建议的标准。OAuth2的作用是为了解决访问资源的安全性以及灵活性。2.它定义了通过access token去获取请求资源的机制,但是没有定义提供用户身份信息的标准方法。

2023-04-17 20:54:01 406

原创 资源和内容

【代码】资源和内容。

2023-04-17 20:51:59 197

原创 微信扫码登录

为了满足网站更定制化的需求,我们还提供了第二种获取code的方式,支持网站将微信登录二维码内嵌到自己页面中,用户使用微信扫码授权后通过JS将code返回给网站。JS微信登录主要用途:网站希望用户在网站内就能完成登录,无需跳转到微信域下登录后再返回,提升微信登录的流畅性与成功率。网站应用微信登录是基于OAuth2.0协议标准构建的微信OAuth2.0授权登录系统。开发者帐号,并拥有一个已审核通过的网站应用,并获得相应的AppID和AppSecret,申请微信登录且通过审核后,可开始接入流程。

2023-04-15 19:41:06 621

原创 内网穿透,让公网能访问的技术

3.点击我的隧道每个人都会分配一条免费的隧道,然后配置本机地址和你项目的端口就行了。原理是通过代理服务器的客户端建立通道,就像一个中介他能找到资源者和客户。1.跳转链接 https://natapp.cn/ 下载客户端,解压。利用内网穿透,能让外网访问我们本地机器上的项目。2.在其官网注册一个账号并登录。我在这里就介绍一个免费的工具。网上有许多这种内网穿透工具。

2023-04-15 19:38:59 118

原创 分布式任务调度,定时任务的处理方案

4.复制配置文件,文件在xxl-job项目的 xxl-job-2.3.1\xxl-job-executor-samples\xxl-job-executor-sample-springboot\src\main\java\com\xxl\job\executor\core\config 的XxlJobConfig。这个命令将会创建一个名为 xxl-job-admin 的容器,并且将容器的 8080 端口映射到宿主机的 8080 端口,使得我们可以通过浏览器访问到 XXL-Job 的管理界面。

2023-04-08 12:52:23 1965

原创 md5的比较

第二种方式计算两个副本的 MD5 值,而两个副本的 MD5 值相同,那么可能是由于两个副本的元数据相同,或者只有元数据不同,而文件内容相同。众所周知,可以通过md5来比较两个文件是否一样,在我写demo的时候发生了一个错误,用两个方法来比较两个文件,方法2能比较成功,但是方法一比较失败。第一种方式计算两个副本的 MD5 值,而两个副本的 MD5 值不同,那么可能是由于两个副本的元数据不同。注意:test是原来的视频文件,test2是经过分块再合并的文件。,如果这些信息不同,计算出来的 MD5 值也会不同。

2023-03-30 10:48:20 1537

原创 什么时候使用Serializable

例如,对于只在一个应用程序中使用的对象,我们不需要将其实现 Serializable 接口,因为它们不需要在不同的应用程序之间进行传输或持久化。在Spring中,当我们需要将一个Java对象在不同的应用程序之间进行传输或持久化时,就需要给该对象添加 Serializable 接口。Serializable 接口是 Java 提供的一个标记接口,用于表示一个类的对象可以被序列化,即将对象转换为字节流的形式以便于在网络上传输或存储到文件系统中。

2023-03-25 11:00:21 602

原创 如何处理树形结构问题

2.递归(对于自己节点不平整的也行,不过根节点数据需要自己给上,想必对你们也不是什么难事)比如这个表parentId可以填写1,1虽然是第二层但是只有一个。适用于对于叶子节点平整的数据,只需要将表自连接,连接次数等于 层数-2。例如对于3层,自连接一次。1.mysql自链接。

2023-03-24 21:41:37 149

原创 跨域的概念和解决方案

目标服务器在响应中添加一些特殊的头部信息,告诉浏览器允许跨域访问,例如:Access-Control-Allow-Origin、Access-Control-Allow-Methods、Access-Control-Allow-Headers 等。3.nginx代理服务器:通过在本地服务器上设置代理,将跨域请求发送给本地服务器,由本地服务器再去请求目标服务器,获取数据后再返回给浏览器,从而实现跨域请求(只有浏览器访问服务器的时候才可能会出现跨域问题,服务器和服务器之间访问不存在)。

2023-03-24 16:16:25 132

原创 git的正确使用方式

5.如果需要对代码进行代码审查、合并等操作,可以使用 Gitee 的 Pull Request 功能。如果需要对代码进行持续集成、部署等操作,可以使用 Gitee 的 CI/CD 功能。可以在 Gitee 上配置相关的 CI/CD 流程,实现自动化的构建、测试和部署。当然,还有更多高级的 Git 命令和功能可以用来进行更复杂的代码管理和协作开发。4.如果在推送代码的过程中出现冲突,需要先将 Gitee 上的代码更新到本地,再进行代码合并。2.在本地工作目录中进行代码编写、修改或添加文件。

2023-03-24 00:51:16 205

原创 seata解决分布式事务问题步骤(分布式环境下,方法异常后回滚策略)

Seata是一款开源的分布式事务解决方案,提供了三种模式:AT模式、TCC模式和Saga模式。下面我将分别介绍它们的概念和区别,并给出Java实现步骤。

2023-03-24 00:50:50 2280

原创 mysql写题心得

分别查看&结果不去重:所以直接使用两个条件的or是不行的,直接用union也不行,要用union all,union 和 union all 的区别是,union 会自动压缩多个结果集合中的重复结果,而 union all 则将所有的结果全部显示出来,不管是不是重复。profile like ‘%female’----------------------like可以作为判断条件。分别查看学校为山东大学或者性别为男性的用户的device_id、gender、age和gpa数据,结果不去重。

2023-03-16 20:09:14 58

原创 重载和重写的概念和区别

区别,重载和重写的区别在于它们针对的对象不同:重载针对同一个类中的方法,重写针对父类和子类之间的继承关系。另外,重载的方法可以有不同的返回类型,而重写的方法必须与父类方法的返回类型相同或是其子类型。重载的目的是为了方便编程,可以根据不同的参数类型和个数来调用不同的方法,从而实现多态的效果。重写的目的是为了实现多态性,子类可以重写父类中的方法,并且可以根据自己的需要进行修改或扩展。重载(Overloading)和重写(Overriding)是面向对象编程中的两个重要概念,它们具有不同的含义和作用。

2023-03-14 21:43:13 2082

原创 什么是 spring的ioc和aop,请谈谈你的理解

在IoC的实现中,我们需要定义好对象的依赖关系,让Spring容器自动进行注入,以此来实现对象之间的松耦合和可维护性。AOP的核心思想是(面向切片)将程序中的横切关注点(如日志、事务、安全等)抽象出来,形成一个独立的模块,然后通过动态代理等技术将这个模块织入到程序的各个关键位置,从而达到代码重用、降低复杂度和增强程序可维护性等目的。控制(Control)侧重于框架对对象的创建和管理,而反转(Inversion)则侧重于对象不再自己掌握自己的创建和管理,而是由IoC容器来反向控制和管理对象。

2023-03-12 16:16:08 157

原创 在elasticsearch使用拼音分词器实现在输入框的联想

es中拼音分词器的使用

2023-03-10 20:03:53 461

原创 eslasticsearch的json语句和代码层级结构和对应的RestClient搜索API+结果解析-----------源自黑马cloud资料

对es的一些自我看法

2023-03-10 16:51:49 204

springboot注解

...

2022-04-19

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

TA关注的人

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