- 博客(153)
- 收藏
- 关注

原创 Docker日志相关命令
tail 是 Docker Logs 命令的一个选项,用于限制显示容器日志的行数。通过指定 --tail 后面的数字参数,你可以只显示最后几行的日志内容。-n和–tail效果一样。
2024-06-09 15:21:03
861
1

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

原创 关于git的commit提交回退的三种命令模式
git reset --mixed HEAD^使用 git reset HEAD^ 命令默认的就是mixed模式,此命令表示保留对工作区的修改,但是修改未进入暂存区。git reset --soft HEAD^此命令也表示保留对工作区的修改,并且修改已进入暂存区。git reset --hard HEAD^此命令表示不保留对工作区的修改,也即工作区完全回退到上个版本的样子。此命令注意慎用。...
2022-01-06 00:48:41
8472
1

原创 Autowired注解与Resource注解的区别
两者的用法其实这两个注解的作用都一样,都是在做bean的注入,在使用过程中,两个注解有时候可以替换使用.两者的共同点@Resource注解和@Autowired注解都可以用作bean的注入. 在接口只有一个实现类的时候,两个注解可以互相替换,效果相同.两者的不同点@Resource注解是Java自身的注解,@Autowired注解是Spring的注解. @Resource注解有两个重要的属性,分别是name和type,如果name属性有值,则使用byName的自动注入策略,将值作为需要
2021-09-09 20:40:14
49628
27
原创 泛型子类使用Builder提示:both methods have same erasure, yet neither hides the other
子类自定义builder方法。
2025-01-21 21:01:17
215
原创 正则表达式常用
正向先行断言用于检查某个模式在当前匹配位置后是否存在,而不包括该模式本身在内。X(?=Y)这个模式将匹配X,前提是X后面必须跟着Y。但只会返回X的匹配结果。在这个例子中,\d会匹配任何单个数字,但只会在数字后面跟着 " dollars" 的情况下匹配。字符串5 dollars可以匹配到5,而5 euros则不会。
2024-11-21 11:19:47
215
原创 Retryable重试机制
如果不需要回调方法,可以直接不写回调方法,那么实现的效果是,重试次数完了后,如果还是没成功没符合业务判断,就抛出异常。@Recover注解来开启重试失败后调用的方法(注意,需跟重处理方法在同一个类中),此注解注释的方法参数一定要是@Retryable抛出的异常,否则无法识别,可以在该方法中进行日志处理。方法的第一个参数,必须是Throwable类型的,建议是与@Retryable配置的异常一致,其他的参数,需要哪个参数,写进去就可以了(@Recover方法中有的)该回调方法与重试方法写在同一个实现类里面。
2024-11-05 17:34:21
333
1
原创 springboot项目测试环境构建出的依赖包比本地构建出的依赖包多
对比测试环境启动的jar包和本地启动的jar之后发现,确实测试环境的jar包中会有druid的jar包,而本地无此jar包。上述druid是服务pom文件中之前引入的依赖包,后续由于某种原因而不需要该依赖包了,故已在pom文件中移除掉了该依赖包。导致在构建本项目时,通过common的路径在maven仓库中得到的依赖包是其它项目的,所以会将druid引入进来。最终在组长的帮助下,发现本项目中引入的common依赖包的路径和其它项目的common依赖包的路径是一样的。而测试环境却出现上述错误。
2024-10-24 18:51:20
303
原创 ES分词导致查询结果不准确
也就是自定义一个词库,让es遇到自定义词库中的词时也进行分词。比如将上述的“层”加入自定义词库当中,如何es分词时则会将“层”给分词出来。这需要改动es的配置文件IKAnalyzer.cfg.xml,修改文件里面的扩展配置指向自定义词库。这种方案的缺点是不能一次性解决该问题,因为需要遇到此问题时,才能将未查询到的词组加入自定义词库,而且需要重启es,会影响线上功能。
2024-09-18 14:17:24
777
原创 Java对象列表属性映射工具类
经常有这种情况,就是获取到一个对象列表之后,需要根据对象里某个字段的值去获取另一个字段的值。如下所示,有个Item对象列表,Item对象里有个id字段和Value字段,现需要根据id的值去查询value的值。
2024-09-13 17:33:54
385
原创 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
408
原创 循环依赖问题差点导致线上事故
到了发版的日期,同事将此情况汇报给了组长,没想到才没过一会儿,组长就发现代码中确实有循环依赖,只不过该循环依赖存在于3个类之间,也就是A->B->C->A。查看代码发现,也确实是同事新写的代码的问题。在同事修改代码之前,类的关系是B->C->A,然后同事后面又在A中引入了B,所以引发了循环依赖。至于项目启动偶然才出现循环依赖的问题,这应该和类的加载顺序有关,因为spring在默认情况下不保证bean的加载顺序。起因是同事在测试环境启动项目时日志报了个循环依赖的错误,日志提示类A和类B发生了循环依赖。
2024-07-25 16:23:59
286
1
原创 JVM内存配置错误导致的线上服务问题
其次怀疑是数据迁移导致的问题,因为历史原因,之前的数据在创建的时候很不规范,所以在迁移的时候进行数据分析时比较麻烦,会导致迁移后的数据与旧数据对应不上。然后再查看服务引入的redis依赖包,因为该依赖包是公司自研的,并且我在其基础上添加了redis加锁重试机制,因为报错的地方就是在执行加锁重试那一块代码,所以我怀疑是这部分代码的问题。先查看调用方的日志,发现确实是进入到服务提供方(此次重构的服务)之后就出现问题了,顿时心凉半截,想着多怕是自己写的代码问题。堆内存在增加到最大堆内存之前,一直没进行回收。
2024-07-13 15:14:03
972
原创 时间转换Java脚本,用于时间戳和标准时间格式互转
请先确保已经正确安装了Java运行环境(JRE)。你可以在cmd命令行中输入。直接复制该代码放到txt文件中,然后更改文件类型为java.来检查Java的安装情况。
2024-06-28 09:51:35
279
原创 Consul删除失效服务实例
服务重新构建后,consul并未将旧服务剔除。服务在consul成功注册,但服务调用失败。使用官网提供的api删除无效的服务实例。请求之后就可以删除此无效实例。
2024-06-11 13:27:59
454
原创 自定义注解+AOP切面实现日志记录
在需要进行日志记录的操作方法上使用该自定义注解,并要求使用@ApiOperation注解(用于记录操作描述)。OPERATOR_NAME和OPERATOR_CODE两个字段用于记录操作人和操作人编码,从请求头中获取。
2024-05-29 13:44:10
238
原创 Consul部分服务注册失败
该服务配置了心跳检查,然而consul访问不到心跳检查接口(该接口由配置文件配置consul心跳检查时指定)然后将maven重新导入一下,再重启服务即可。这是因为该服务没有添加心跳检查的依赖包。部分服务注册成功,部分服务注册失败。
2024-05-20 18:22:49
612
原创 线上问题回溯
原因:启动类未添加该api的hystrix接口的包扫描。因为@EnableFeignClients注解里添加的包路径只会扫描到@FeignClint注解定义的接口,而扫描不到由@Component 注解定义Hystrix接口。项目启动时提示找不到该Api,该Api接口用于其它服务服务pretreatment服务。1.关于项目启动时找不到自定义的FeignApi。解决:启动类添加该api目录的包扫描。
2024-05-20 09:12:54
255
原创 常用反射方法
getActualTypeArguments():返回表示此类型实际类型参数的 Type对象的数组。【一般不直接使用该方法,而是在该方法后加一个下标,如下两行】getGenericSuperclass():返回当前类父类的类型(即:包名.类名)getActualTypeArguments()[0]:返回当前类父类泛型的第一个参数。getActualTypeArguments()[1]:返回当前类父类泛型的第二个参数。getClass():返回当前类的包名.类名。
2024-05-09 15:55:47
144
原创 Java实体类之间的转换
通常在后端开发中经常不直接返回实体Entity类,经过处理转换返回前端,前端提交过来的对象也需要经过转换Entity实体才做存储。
2024-03-26 14:00:19
1539
原创 @Scheduled的使用
Scheduled是springboot自带的定时任务注解,可以快速实现任务的定时执行,使用方法是直接在要实现定时任务的方法上加上@Scheduled注解。但是需要特别注意的是,在使用这个注解时应现在启动类上加上@EnableScheduling注解,表示可以开启定时任务的注解。
2024-03-21 10:08:31
3588
原创 死记硬背spring bean 的生命周期
spring bean的生命周期主要会经过3个关键步骤,即实例化对象、给对象进行属性注入、对象初始化,只不过在进行对象初始化之前或之后有可能会进行一些自定义的处理,比如对象实现了BeanNameWare接口,可以用来设置bean对象的名称,也比如对象实现了BeanPostProcessor接口,就可以增加一些自定义的逻辑在该接口的两个方法中。当然对象初始化完成后,最后还可以增加对象的销毁方法,让对象在销毁时进行一些自定义的操作。
2024-02-29 21:45:29
658
原创 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
442
原创 关于数据库切换的麻烦
现项目使用了两个数据源,分别为A、B,两个数据库的数据结构并不相同,数据库A是用来做查询一些基本信息的,数据库B是用来保留业务操作数据的。后端是在mapper层用@DS注解来区分哪些地方用数据库A,而哪些地方用数据库B的。现在有个新需求,业务新增一个功能,用户可以在界面选择,有两个选项,分别是,而业务需要展示对应模式的数据,也就是说需要新增一个数据库C,用来保留训练模式下的数据,原本的数据库B用来保留作战模式下的数据,但是不管在哪种模式下,数据库A是不需要切换的。
2024-01-09 11:43:51
625
原创 教你一招解决: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
3513
原创 如何防止接口被恶意请求?添加时间戳检验?
Autowired@Autowired@Autowired@Overridethrow new UserException(ReturnCode.PARAMETERS_ERROR, "缺少session");//获取方法中的注解,看是否有该注解= null){//从redis中获取用户访问的次数// 有可能ip是代理的//第一次访问//加1}else{//超出访问次数。
2023-08-01 10:41:30
927
原创 自定义Controller接口参数的值不能为空的校验
需求:在进入到相应Controller控制器前,需要先校验参数是否符合规范要求,如是否为空等等。有人说,可以使用@PathVariable里面的required属性控制,然而该属性只是代表参数是否必填,并不能校验参数的值是否满足要求。
2023-07-31 17:15:16
1471
原创 Java解决new date出现的时区问题(差8小时)
这样就不用专门在各个地方设置时区了,即可以取消format.setTimeZone()的设置。创建一个全局配置类,用于配置项目全局时区。
2023-07-19 16:58:03
3362
1
原创 java -jar后出现中文乱码
网上说dos窗口出现中文乱码有两种情况,一是运行jar包后程序输出的日志出现乱码,二是运行jar包后程序返回的数据出现乱码。第一种情况的解决办法(dos窗口输出的日志出现乱码),先在黑窗口执行下面命令,将控制台输出的编码改为utf8。今天在黑窗口执行一个jar包,发现程序运行后打印的日志全部出现中文乱码的情况,现记录一下解决的办法。第二种情况的解决办法(程序返回的数据出现乱码),运行jar包时指定编码为utf8,如:java -Dfile.encoding=utf-8 -jar xxx.jar。
2023-06-29 10:21:46
6183
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
1008
1
原创 项目中根据对象属性来去重的方法Collectors.collectingAndThen()
如有一个Person列表,项目中需要根据Person类里面的name属性去重。//赋值初始化过程省略。
2023-03-20 11:44:34
844
原创 3年Java经验面试题回顾总结
我在一月初的时候从上一家公司离职,放肆玩了一个多月,大概从2月10日的样子开始刷题。其实没有什么规划,只是在B站上面搜一下,直接上手看视频,先是从Java基础开始,然后是三大框架,其次是微服务,最后简单回顾了一下前端知识,大概就是这样。大概学习了半个月的样子(期间包括简历的制作),然后开始投简历是在2月27日。在看公司的招聘要求的时候,我发现我无了,感觉好多技术都不会,甚至是没有听过,比如Netty、Activiti、ERP等等,心想肯定是找不到工作了,心态崩了好几天。
2023-03-12 00:41:06
464
空空如也
MySQL部分数据源切换问题
2023-12-22
TA创建的收藏夹 TA关注的收藏夹
TA关注的人