- 博客(73)
- 资源 (3)
- 收藏
- 关注
原创 判断线程/任务是否全部执行完成
判断线程/任务是否全部执行完成,这里所有的都没有指定线程池,所有他这里是使用的。最好不要使用内置的这个线程池,可以自定义一个,然后在创建的时候进行指定。我感觉方案3好用一些。但是如果不放心使用异步任务的话,直接使用方案1即可。都可以实现功能。
2024-01-22 16:37:21 966 1
原创 SpringBoot 自定义Banner
SpringBoot 自定义Banner,内置变量spring-boot.version:SpringBoot的版本号spring-boot.formatted-version:带v的版本号[外链图片转存中…(img-kzLyUrAu-1705820973870)]直接在类路径下创建banner.txt来替换SpringBoot默认的输出最为方便,想要美化的话,可以通过一些工具来进行生成。
2024-01-21 15:09:56 1021
原创 Tomcat配置项目直接通过http://ip:port访问
Tomcat配置项目直接通过http://ip:port访问,解决项目重复加载两次的问题
2024-01-20 20:50:43 674
原创 Oracle行转列函数,列转行函数
Oracle 可以通过PIVOT,UNPIVOT,分解一行里面的值为多个列,及来合并多个列为一行。行传列函数,及列转行函数
2024-01-18 18:18:18 1818
原创 非maven项目快速转换为maven项目
`maven-compiler-plugin`:解决在编译过程中识别不到第三方依赖的问题 `maven-war-plugin`:解决在部署后可以让第三方包被tomcat识别 使用这两个插件让我们可以无需一个一个的添加`denpendency`,之后的有再补充的`jar`包,可以通过`denpendency`交给`maven`来管理。
2024-01-15 14:02:26 819
原创 pom.xml中resouces标签
resources是maven在编译项目时将资源文件或者额外的文件赋值到输出目录中。通常包括配置文件,属性文件,模板文件,jar包等。resouces中可以包含resouce。也就是可以自定义的配置多个资源配置。
2024-01-14 21:18:34 828
原创 解决Unexpected record signature 0X9&&maven 资源过滤
我们有个需求是根据`excel`模版导出一个`excel`表。我们的项目是SpringBoot,所以理所当然的把这个模版文件放到了,`resources`文件夹中。但是在导出文件的时候却遇到了`invalid code lengths set`及`Unexpected record signature: 0X9`的错误。maven 资源过滤
2024-01-13 23:36:03 1416
原创 maven配置多个远程仓库
单个库的话就使用mirrors即可,配置方便,多个库正常情况下只有一个库生效。多个库的话就使用profiles即可,配置多个profile,多个profile的加载顺序是从下往上,依次加载。并且需要配置激活对应的仓库配置。
2024-01-02 23:04:14 1053
原创 解决idea 通过build project 手动触发热部署失败
运行项目的过程中,并且保证(不添加方法,不修改方法名)一定的规则的情况下,可以通过。这里修改了方法名后,他就会提示热部署交换文件失败了,需要手动重启项目。在只修改业务逻辑的情况下,能正常交换成功。来手动热部署项目,也就是会交换。
2023-12-07 22:15:47 640
原创 Spring三级缓存处理循环依赖的过程
当Spring遇到循坏依赖时,它通过使用三级缓存以及提前暴露不完整的对象来解决问题。举例:在A实例化完成后,Spring会将他放入到三级缓存中。A此时并没有进行初始化,当A进行属性赋值的时候,如果扫描到A对象依赖B对象的话,则又会去实例化B对象,然后再把B对象放入到三级缓存中,当B进行属性赋值的时候,发现需要依赖A对象,那么这个时候就出现了循环依赖的问题了。然后从三级缓存中取出A对象,这里的A对象被包装成了一个的一个lambda。
2023-12-01 00:01:37 1080
原创 Java使用Redis来实现分布式锁
在单节点服务中,我们可以使用来保证同一时间内只允许一个线程执行限定的代码块。但是如果我们是多节点服务呢,因为是针对服务内部的,其他服务是无法受到他的干预的。那么如何保证多个节点在同一时间内只允许一个节点中的一个线程去访问这个代码块呢?使用分布式锁!!!本文使用Redisson来操作Redis并实现分布式锁。
2023-11-21 18:09:52 505
原创 Spring bean标签
application(web扩展的):不同的web Application会创建,不同bean,webApplication关闭后销毁bean。constructor-arg:用于构造函数注入,或者是factory-bean有参数的时候等。session(web扩展的):不同的session会创建不同bean,session结束后销毁bean。request(web扩展的):每一个请求都会去创建不同bean,请求结束后销毁bean。可以重写bean中的一个方法,把方法的返回值替换成。
2023-11-13 22:04:09 348
原创 MySQL EXPLAIN查看执行计划
MySQL 执⾏计划是 MySQL 查询优化器分析 SQL 查询时⽣成的⼀份详细计划,包括表如何连 接、是否⾛索引、表扫描⾏数等。通过这份执⾏计划,我们可以分析这条 SQL 查询中存在的 问题(如是否出现全表扫描),从⽽进⾏针对优化。我们可以通过EXPLAIN来查询我们SQL的执行计划。
2023-11-05 23:26:49 369
原创 MySQL WITH AS及递归查询
WITH是 SQL 中的一个关键字,用于创建临时表达式(也称为 Common Table Expression,CTE),它允许你在一个查询中临时定义一个表达式,然后在后续的查询中引用它。理解:当我们使用WITH AS他会帮我们创建一个临时的表,。当我们使用这个临时表二次以上时,他的效率是会比我们原本写两个一模一样的子查询是要搞的。
2023-10-29 23:59:44 471
原创 MySQL与Oracle的分页
当我们通过SQL去查询一个结果集的时候,并不需要查看所有行,可能只是查看前几行,或者中间的几行。则需要像MySQL的limit或Oracle的ROWNUM与FETCH NEXT来实现。
2023-09-16 19:30:25 524
原创 MySQL锁,解决锁表的问题
有一个`truncate table` 在执行,导致锁表了。并且一直没有完成,从而导致线上服务查询基本信息的时候出现大量卡住的问题,导致服务不可用。记录下问题及解决方案,及其他知识点
2023-09-14 00:57:53 128
原创 Spring Aop
在Bean对象上标注@Aspect使得成为切面。@Aspect@Component在切面类中定义一个void方法,并使用@Pointcut注解来指示切入点表达式execution(常用):用于匹配方法执行连接点。这是使用 Spring AOP 时使用的主要切入点指示符。第一部分代表修饰符。第二部分为包+类+方法名这三个都可以为,也可以为User*这样通配的形式第三部分为参数列表()表示没有参数(..)表示可以有任意参数(零个或多个)(*)只能有一个参数(+)表示至少有一个参数。
2023-09-11 18:11:42 86
原创 Stream.Collectors groupingBy 与 partitioningBy
概述:当我们遇到一个集合,需要根据某个字段进行`分组`或者根据某种条件进行`分区`的时候,我们可以使用到`groupingBy`与`partitioningBy`。根据name的首字母进行分组。// 自定义分组### 输出只要我们提供的key一致则会被分配到同一个组中。
2023-08-27 23:48:02 241
原创 Java 异步计算
而我们的Fork-Join-Pool可能会为一些短暂的任务重用相同的线程,以减少线程的创建和销毁开销。当我们的CompletableFuture提供了返回值的时候,我们可以通过get或者join方法来阻塞的得到这个结果。下都会是在一个新的线程下去帮我们执行这个回调,而普通的则是在原有由原有执行任务的线程去执行这个回调。一个可完成的Future,在我们调用他的get方法的时候,他会阻塞等待这个任务完成来获取他的结果。的方法与普通的handle相比,他是执行的线程发送了变化。异步执行一个任务并返回结果。
2023-08-20 16:59:02 150
原创 Java 纠正上传图片自动旋转与镜像的问题
遇到一个图片看着是方向是正的,但是用特定的工具打开后自动旋转与镜像。。为什么我们在一些软件上,或者浏览器中看到是正的,是因为这些软件,浏览器自动的纠正了这个图片。然而我们的Java并没有自动的为我们去纠正这个图片当我们使用去绘制图片的时候发现高与居然是相反的。
2023-08-15 13:37:17 868 3
原创 判断两个时间段是否有交集
总结:思路不太清楚可以画个图就明了了。查询出目标库中有交集的数据就说明有占用,如果没有则没有占用。前言:项目中遇到了类似会议室预约的时间段被占用,预约车辆时间段被占用等。预约的时间,与目标数据库中任意一条的存在交集,则可以视为占用。必备条件:start
2023-05-10 00:19:25 1029
原创 synchronized static
结论:不同的对象在不同的线程中执行同一个synchronized方法时,不需要等待其他对象锁的释放因为synchronized目前锁的是this不同的对象相互不影响。结论:不同的对象在不同的线程中执行同一个静态方法时,会触发类锁从而导致需要等待test.syn1方法结束后才会执行test1.syn1方法。结论:同一对象在不同的线程中执行的方法如果有一个是静态方法的锁(类锁)跟普通方法的锁(实例锁)是互不干扰的。示例3:不同对象在不同线程中执行同一个的synchronized 静态(static)方法。
2023-04-20 00:28:59 86
GoogleChromePortable64_86.0.4240.183_online.paf.exe
2021-07-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人