自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Docker日志相关命令

tail 是 Docker Logs 命令的一个选项,用于限制显示容器日志的行数。通过指定 --tail 后面的数字参数,你可以只显示最后几行的日志内容。-n和–tail效果一样。

2024-06-09 15:21:03 622

原创 git常用命令

8.合并分支,合并其它分支到当前分支。7.创建并切换到该分支。3.取消commit。

2024-05-09 08:51:33 118

原创 无须关注看文章

直接上方法。首先鼠标放到关注博主即可阅读全文上面,然后右键鼠标选择检查,在Elements下面搜索 article_content,会定位到id="article_content"的一个div然后在Styles下面找到element.style代码块,我们需要手动取消掉height和overflow前面的勾选框。然后就可以阅读全文啦。

2022-12-15 10:15:25 224

原创 关于git的commit提交回退的三种命令模式

git reset --mixed HEAD^使用 git reset HEAD^ 命令默认的就是mixed模式,此命令表示保留对工作区的修改,但是修改未进入暂存区。git reset --soft HEAD^此命令也表示保留对工作区的修改,并且修改已进入暂存区。git reset --hard HEAD^此命令表示不保留对工作区的修改,也即工作区完全回退到上个版本的样子。此命令注意慎用。...

2022-01-06 00:48:41 8033 1

原创 Autowired注解与Resource注解的区别

两者的用法其实这两个注解的作用都一样,都是在做bean的注入,在使用过程中,两个注解有时候可以替换使用.两者的共同点@Resource注解和@Autowired注解都可以用作bean的注入. 在接口只有一个实现类的时候,两个注解可以互相替换,效果相同.两者的不同点@Resource注解是Java自身的注解,@Autowired注解是Spring的注解. @Resource注解有两个重要的属性,分别是name和type,如果name属性有值,则使用byName的自动注入策略,将值作为需要

2021-09-09 20:40:14 49256 26

原创 Linux常用命令

1-目录切换2-目录查看3-目录操作 --创建目录 --删除目录或文件 --目录修改 --搜索目录4-文件的增删改查操作

2021-08-11 19:35:31 219

原创 ES数据的删除与备份

需要删除索引下满足指定条件的文档数据,并将删除的数据进行备份。

2024-09-19 11:18:06 71

原创 ES分词导致查询结果不准确

也就是自定义一个词库,让es遇到自定义词库中的词时也进行分词。比如将上述的“层”加入自定义词库当中,如何es分词时则会将“层”给分词出来。这需要改动es的配置文件IKAnalyzer.cfg.xml,修改文件里面的扩展配置指向自定义词库。这种方案的缺点是不能一次性解决该问题,因为需要遇到此问题时,才能将未查询到的词组加入自定义词库,而且需要重启es,会影响线上功能。

2024-09-18 14:17:24 235

原创 Java对象列表属性映射工具类

经常有这种情况,就是获取到一个对象列表之后,需要根据对象里某个字段的值去获取另一个字段的值。如下所示,有个Item对象列表,Item对象里有个id字段和Value字段,现需要根据id的值去查询value的值。

2024-09-13 17:33:54 271

原创 ElasticSearch常用DSL命令

上述命令类似于MySQL命令:where dbId = '19841159f25845008fad2512aa91f48b' and original like '%边水%'。must类似于mysql里面的and命令,上述命令相当于MySQL里面的 where dbId in(287994) and original like '%层%'。注意此处把match命令当成了mysql的like命令,其实这两个命令还是有明显区别的。1、查询索引字段的映射关系。2、查询索引的分词器等设置。3、根据指定分词器分词。

2024-09-02 17:10:01 342

原创 循环依赖问题差点导致线上事故

到了发版的日期,同事将此情况汇报给了组长,没想到才没过一会儿,组长就发现代码中确实有循环依赖,只不过该循环依赖存在于3个类之间,也就是A->B->C->A。查看代码发现,也确实是同事新写的代码的问题。在同事修改代码之前,类的关系是B->C->A,然后同事后面又在A中引入了B,所以引发了循环依赖。至于项目启动偶然才出现循环依赖的问题,这应该和类的加载顺序有关,因为spring在默认情况下不保证bean的加载顺序。起因是同事在测试环境启动项目时日志报了个循环依赖的错误,日志提示类A和类B发生了循环依赖。

2024-07-25 16:23:59 248 1

原创 JVM内存配置错误导致的线上服务问题

其次怀疑是数据迁移导致的问题,因为历史原因,之前的数据在创建的时候很不规范,所以在迁移的时候进行数据分析时比较麻烦,会导致迁移后的数据与旧数据对应不上。然后再查看服务引入的redis依赖包,因为该依赖包是公司自研的,并且我在其基础上添加了redis加锁重试机制,因为报错的地方就是在执行加锁重试那一块代码,所以我怀疑是这部分代码的问题。先查看调用方的日志,发现确实是进入到服务提供方(此次重构的服务)之后就出现问题了,顿时心凉半截,想着多怕是自己写的代码问题。堆内存在增加到最大堆内存之前,一直没进行回收。

2024-07-13 15:14:03 928

原创 idea配置控制台打印sql执行语句

【代码】idea配置控制台打印sql执行语句。

2024-07-10 10:09:31 356

原创 与枚举结合的策略模式

【代码】与枚举结合的策略模式。

2024-07-02 18:59:21 396

原创 时间转换Java脚本,用于时间戳和标准时间格式互转

请先确保已经正确安装了Java运行环境(JRE)。你可以在cmd命令行中输入。直接复制该代码放到txt文件中,然后更改文件类型为java.来检查Java的安装情况。

2024-06-28 09:51:35 199

原创 Consul删除失效服务实例

服务重新构建后,consul并未将旧服务剔除。服务在consul成功注册,但服务调用失败。使用官网提供的api删除无效的服务实例。请求之后就可以删除此无效实例。

2024-06-11 13:27:59 311

原创 自定义注解+AOP切面实现日志记录

在需要进行日志记录的操作方法上使用该自定义注解,并要求使用@ApiOperation注解(用于记录操作描述)。OPERATOR_NAME和OPERATOR_CODE两个字段用于记录操作人和操作人编码,从请求头中获取。

2024-05-29 13:44:10 201

原创 添加跨域、所有接口添加前缀

【代码】添加跨域、所有接口添加前缀。

2024-05-28 08:53:17 146

原创 Consul部分服务注册失败

该服务配置了心跳检查,然而consul访问不到心跳检查接口(该接口由配置文件配置consul心跳检查时指定)然后将maven重新导入一下,再重启服务即可。这是因为该服务没有添加心跳检查的依赖包。部分服务注册成功,部分服务注册失败。

2024-05-20 18:22:49 376

原创 线上问题回溯

原因:启动类未添加该api的hystrix接口的包扫描。因为@EnableFeignClients注解里添加的包路径只会扫描到@FeignClint注解定义的接口,而扫描不到由@Component 注解定义Hystrix接口。项目启动时提示找不到该Api,该Api接口用于其它服务服务pretreatment服务。1.关于项目启动时找不到自定义的FeignApi。解决:启动类添加该api目录的包扫描。

2024-05-20 09:12:54 229

原创 常用反射方法

getActualTypeArguments():返回表示此类型实际类型参数的 Type对象的数组。【一般不直接使用该方法,而是在该方法后加一个下标,如下两行】getGenericSuperclass():返回当前类父类的类型(即:包名.类名)getActualTypeArguments()[0]:返回当前类父类泛型的第一个参数。getActualTypeArguments()[1]:返回当前类父类泛型的第二个参数。getClass():返回当前类的包名.类名。

2024-05-09 15:55:47 124

原创 Java实体类之间的转换

通常在后端开发中经常不直接返回实体Entity类,经过处理转换返回前端,前端提交过来的对象也需要经过转换Entity实体才做存储。

2024-03-26 14:00:19 1292

原创 @Scheduled的使用

Scheduled是springboot自带的定时任务注解,可以快速实现任务的定时执行,使用方法是直接在要实现定时任务的方法上加上@Scheduled注解。但是需要特别注意的是,在使用这个注解时应现在启动类上加上@EnableScheduling注解,表示可以开启定时任务的注解。

2024-03-21 10:08:31 2378

原创 死记硬背spring bean 的生命周期

spring bean的生命周期主要会经过3个关键步骤,即实例化对象、给对象进行属性注入、对象初始化,只不过在进行对象初始化之前或之后有可能会进行一些自定义的处理,比如对象实现了BeanNameWare接口,可以用来设置bean对象的名称,也比如对象实现了BeanPostProcessor接口,就可以增加一些自定义的逻辑在该接口的两个方法中。当然对象初始化完成后,最后还可以增加对象的销毁方法,让对象在销毁时进行一些自定义的操作。

2024-02-29 21:45:29 630

原创 bat脚本打开多个黑窗口并执行不同的命令

在使用java -jar运行jar包之前,需要先启动redis,而redis的安装目录与jar包不在同一目录下,所以每次启动项目的时候都需要来回的切换目录。现写了一个bat脚本,用来一键启动redis和jar包。start cmd /k "cd /d redis安装目录 && redis-server redis.windows.conf"其中,cmd /k命令是不关闭黑窗口的命令,timeout /T 3表示等待3秒,/NOBREAK表示键盘输入不会中断等待。

2024-01-26 15:41:30 371

原创 关于数据库切换的麻烦

现项目使用了两个数据源,分别为A、B,两个数据库的数据结构并不相同,数据库A是用来做查询一些基本信息的,数据库B是用来保留业务操作数据的。后端是在mapper层用@DS注解来区分哪些地方用数据库A,而哪些地方用数据库B的。现在有个新需求,业务新增一个功能,用户可以在界面选择,有两个选项,分别是,而业务需要展示对应模式的数据,也就是说需要新增一个数据库C,用来保留训练模式下的数据,原本的数据库B用来保留作战模式下的数据,但是不管在哪种模式下,数据库A是不需要切换的。

2024-01-09 11:43:51 591

原创 教你一招解决:no active profile set,falling back to default profiles:default.

本来代码已经完成,现需要重新打包上传到服务器,我之前的打包步骤一直都是 重启项目-maven package,今天也不知咋的,我嫌重启太慢了,就直接 先clean-再package,结果就是项目在服务器上运行不起来了,当时我就知道肯定是打包出问题了。然后我就奇了怪了啊,我明明配置yml文件使用prod,怎么就告诉我没有配置呢?在网上溜达了一圈回来,检查了一下打包的target文件夹,发现target下面果然缺失了很多文件,包括资源文件(yml文件在该文件夹里面)。

2023-12-22 15:07:55 3076

原创 如何防止接口被恶意请求?添加时间戳检验?

Autowired@Autowired@Autowired@Overridethrow new UserException(ReturnCode.PARAMETERS_ERROR, "缺少session");//获取方法中的注解,看是否有该注解= null){//从redis中获取用户访问的次数// 有可能ip是代理的//第一次访问//加1}else{//超出访问次数。

2023-08-01 10:41:30 796

原创 自定义Controller接口参数的值不能为空的校验

需求:在进入到相应Controller控制器前,需要先校验参数是否符合规范要求,如是否为空等等。有人说,可以使用@PathVariable里面的required属性控制,然而该属性只是代表参数是否必填,并不能校验参数的值是否满足要求。

2023-07-31 17:15:16 1255

原创 Java解决new date出现的时区问题(差8小时)

这样就不用专门在各个地方设置时区了,即可以取消format.setTimeZone()的设置。创建一个全局配置类,用于配置项目全局时区。

2023-07-19 16:58:03 3106

原创 java -jar后出现中文乱码

网上说dos窗口出现中文乱码有两种情况,一是运行jar包后程序输出的日志出现乱码,二是运行jar包后程序返回的数据出现乱码。第一种情况的解决办法(dos窗口输出的日志出现乱码),先在黑窗口执行下面命令,将控制台输出的编码改为utf8。今天在黑窗口执行一个jar包,发现程序运行后打印的日志全部出现中文乱码的情况,现记录一下解决的办法。第二种情况的解决办法(程序返回的数据出现乱码),运行jar包时指定编码为utf8,如:java -Dfile.encoding=utf-8 -jar xxx.jar。

2023-06-29 10:21:46 5535 1

原创 windows系统配置多个redis端口实例

找到redis的配置文件redis.windows-service.conf,复制一份该配置文件到该目录下面,更改文件名为redis.windows-service-6380.conf(自定义)。打开redis管理工具RedisDesktopManager连接到6380这个端口的redis服务,确认是否可以连接成功。右键此电脑-管理-服务和应用程序-服务,查看是否有名称为redis_6380的服务实例。1)、右键上述redis_6380的服务实例,点击启动或者关闭。4、启动和关闭redis服务。

2023-06-26 19:49:30 929 1

原创 项目中根据对象属性来去重的方法Collectors.collectingAndThen()

如有一个Person列表,项目中需要根据Person类里面的name属性去重。//赋值初始化过程省略。

2023-03-20 11:44:34 798 1

原创 3年Java经验面试题回顾总结

我在一月初的时候从上一家公司离职,放肆玩了一个多月,大概从2月10日的样子开始刷题。其实没有什么规划,只是在B站上面搜一下,直接上手看视频,先是从Java基础开始,然后是三大框架,其次是微服务,最后简单回顾了一下前端知识,大概就是这样。大概学习了半个月的样子(期间包括简历的制作),然后开始投简历是在2月27日。在看公司的招聘要求的时候,我发现我无了,感觉好多技术都不会,甚至是没有听过,比如Netty、Activiti、ERP等等,心想肯定是找不到工作了,心态崩了好几天。

2023-03-12 00:41:06 447

原创 如何保证RabbitMQ消息顺序消费

所谓顺序消费,即保证消息的发送顺序要与消息的消费顺序保持一致。

2023-03-06 23:23:25 6099 2

原创 Spring 中,有两个 id 相同的 bean,会报错吗

在这种情况下,(如图)如果我们在同一个配置类里面声明多个相同名字的bean,在Spring IOC容器中只会注册第一个声明的Bean的实例。我们知道,spring容器里面的bean默认是单例的,所以id是唯一的。如果使用@Autowired注解根据类型实现依赖注入,因为IOC容器只有UserService01的实例,所以启动的时候会提示找不到UserService02这个实例。首先,在同一个XML配置文件里面,不能存在id相同的两个bean,否则spring容器启动的时候会报错。

2023-02-16 19:19:41 5481

原创 MySQL为什么要改进LRU算法?

LRU = Least Recently Used(最近最少使用):也就是末尾淘汰法,新数据从链表头部加入,释放空间时从末尾淘汰数据。1.当要访问某个页时,如果不在Buffer Pool中,需要把该页加载到缓冲池,并且把该缓冲页对应的控制块作为节点添加到LRU链表的头部。2.当要访问某个页时,如果在Buffer Pool中,则直接把该页对应的控制块移动到LRU链表的头部。3.当需要释放空间时,直接从末尾淘汰。

2023-02-09 14:13:41 633

原创 为什么写缓冲区仅适用于非唯一普通索引页?

change Buffer:写缓冲区,是针对二级索引(辅助索引)页的更新优化措施。作用:在进行DML操作时,如果请求的辅助索引(二级索引)没有在缓冲池中时,并不会立刻将磁盘页加载到缓冲池,而是在change Buffer中记录缓冲变更,等未来数据被读取时,再从磁盘中读取旧数据并与change Buffer中对应数据进行合并恢复到Buffer Pool中。change Buffer更新流程如下。

2023-02-09 13:30:26 362 1

原创 大白话理解cookie、session和token

名词介绍cookie:浏览器访问服务器,服务器返回cookie给浏览器,浏览器在本地存储cookie,下次带着cookie访问服务器,服务器返回相应的数据。session:浏览器访问服务器,服务器会存储浏览器的数据value,并把key返回给浏览器,浏览器下次带着key(session ID)来访问服务器,服务器能根据key来获取数据。如果有负载均衡,则是session的一个痛点 。token:浏览器访问服务器,服务器保留一份密钥并返回一个加密之后的token给浏览器,浏览器拿着token访问服

2022-12-22 15:14:36 1853

原创 Spring事务失效,同一个类中的内部方法调用事务失效

声明式事务实现方式所谓声明式事务,也就是通过配置的方式,比如通过配置文件xml或者注解的方式,来告诉Spring哪些方法需要Spring帮忙管理事务,然后开发者只需要关注业务代码,而事务的事情则由Spring自动帮我们控制。配置文件的方式:即在spring.xml文件中进行统一配置,开发者基本不用关注事务的事情了,一切交给spring处理。基于注解的方式:只需要在想要添加事务的方法上加上@Transaction注解就可以了。实际工作中,基于配置文件的方式用的很少,我们工作中主要还是用注解的方

2022-12-12 12:57:02 8589 1

空空如也

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

TA关注的人

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