java
阿东-007
专注技术
展开
-
conductor-03
假设有个业务,需要按顺序一次执行 sms 通知用户、email 通知用户、http 通知另一个业务系统。通过 conductor-server 的 api 接口提交 worker 的定义。如果安装了 conductor-ui 的话,也可以通过 ui 界面操作。同理也可以通过 conductor-ui 界面来定义 workflow。同理定义完成短信通知和 http 通知的 worker。也可以通过 conductor-ui 的界面启动工作流。通过 conductor-ui 的界面查看。原创 2023-10-01 23:43:32 · 228 阅读 · 0 评论 -
IDEA使用有道翻译引擎
翻译引擎选择有道词典,点击配置 输入第三步获取的id,密钥。2、打开idea设置 settings - 工具 - 翻译。1、idea需要安装插件- Translate。背景:2022.10 谷歌翻译也不在中国了。原创 2022-12-21 23:00:49 · 3514 阅读 · 0 评论 -
Java 执行SQL脚本文件
【代码】Java 执行SQL脚本文件。原创 2022-12-21 21:45:00 · 1056 阅读 · 0 评论 -
@Transactional 注解 同一个类下的两个方法
calculateAllByEaArea方法(有声明式事务注解 事务传播级别为propagation = Propagation.REQUIRES_NEW 访问域为public)calculateAllByEaArea方法(有声明式事务注解 事务传播级别为propagation = Propagation.REQUIRES_NEW 访问域为public)calculateAllByEaArea方法(有声明式事务注解 事务传播级别为默认 访问域为public)原理是Spring的动态代理。原创 2022-11-30 15:30:21 · 1376 阅读 · 0 评论 -
windows安装多个jdk,并随意切换jdk默认版本
jdk版本切换 在变量值最后输入%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;原创 2022-11-09 18:08:32 · 1424 阅读 · 1 评论 -
Maven项目中pom文件分析汇总
一、Maven项目中<packaging>pom</packaging>的意思项目的打包类型:pom、jar、warpacking默认是jar类型,pom ---------> 父类型都为pom类型jar ---------> 内部调用或者是作服务使用war ---------> 需要部署的项目全文如下:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org原创 2022-04-01 11:50:03 · 1145 阅读 · 0 评论 -
java 两个list 交集 并集 差集 去重复并集
List<String> list1 =new ArrayList<String>();list1.add("A");list1.add("B);List<String> list2 =new ArrayList<String>();list2.add("B");list2.add("C");1.并集list1.addAll(list2);运行结果:A, B, B, C2.无重复并集list2.removeAll(list1);l原创 2022-03-30 16:18:30 · 584 阅读 · 0 评论 -
解决Could not autowire. No beans of ‘‘ type found.程序的编译和运行正常,错误提示并不会产生影响,但是看着不舒服问题
在注入类的时候,@Autowired可能会出现类似于在这里插入图片描述此类问题出现此情况有多种解决方法解决1:启动类位置(1)可以查看本地启动类放置位置,启动类一般要放在最外层的根目录位置,这样才能扫到同级别以及子级的类同上图,如果你的类放在gdcp包外,启动类是扫描不到的(2)如果上述满足,看是否是非启动类的module出现此现象,如果是非启动类的module出现,需要将启动类的module里的pom 文件引入出现此现象的module模块解决2:将@Autowired改为@Resour原创 2022-03-12 17:48:50 · 1492 阅读 · 0 评论 -
线程池核心线程数和最大线程数总结
核心线程数配置个数:看IO密集型,还是CPU密集型(1)一般平时cpu使用率4%以下,都是IO密集型,IO密集型具体看实践,目前项目里核心线程数设置50,最大线程数可以和核心线程数相同,队列配置大一些,使永远触发不到最大线程数(2)如果是大量计算CPU使用率过高,属于CPU密集型,CPU密集型以4C8G为例,核心线程数一般设置4,最大线程数可以和核心线程数相同,队列配置大一些,使永远触发不到最大线程数核心线程数永远不会销毁,和线程池生命周期一样, 除非核心线程shutdown...原创 2022-03-09 16:47:49 · 20705 阅读 · 2 评论 -
JDK1.7和JDK1.8中HashMap为什么线程不安全
前言只要是对于集合有一定了解的一定都知道HashMap是线程不安全的,我们应该使用ConcurrentHashMap。但是为什么HashMap是线程不安全的呢,之前面试的时候也遇到到这样的问题,但是当时只停留在知道是的层面上,并没有深入理解为什么是。于是今天重温一个HashMap线程不安全的这个问题。首先需要强调一点,HashMap的线程不安全体现在会造成死循环、数据丢失、数据覆盖这些问题。其中死循环和数据丢失是在JDK1.7中出现的问题,在JDK1.8中已经得到解决,然而1.8中仍会有数据覆盖这样的问原创 2022-03-09 12:56:24 · 353 阅读 · 0 评论 -
高并发和多线程的关系
高并发和多线程的关系“高并发和多线程”总是被一起提起,给人感觉两者好像相等,实则高并发≠多线程多线程是完成任务的一种方法,高并发是系统运行的一种状态,通过多线程有助于系统承受高并发状态的实现。高并发是一种系统运行过程中遇到的一种“短时间内遇到大量操作请求”的情况,主要发生在web系统集中大量访问或者socket端口集中性收到大量请求(例如:12306的抢票情况、天猫双十一活动)。该情况的发生会导致系统在这段时间内执行大量操作,例如对资源的请求,数据库的操作等。如果高并发处理不好,不仅仅降低了用户的体验原创 2022-02-24 15:52:29 · 333 阅读 · 0 评论 -
流量大和多线程的误解
一、场景:流量特别大,抗压解决方案1、集群扩容,增加容器2、增加缓存,优化接口,使TPS降低(例如100ms以内)二、多线程1、应用场景:例如: 一个接口同时要获取三组数据,商品、订单、结算的三组数据,可已创建三个线程,异步执行,最终等待三个线程执行完获取结果(应用场景不是流量大,抗压使用)2、主要作用:提高资源使用率...原创 2022-02-24 11:43:40 · 193 阅读 · 0 评论 -
Java四种引用包括强引用,软引用,弱引用,虚引用
Java四种引用包括强引用,软引用,弱引用,虚引用。主要是为了更好的进行内存管理而设置的一套机制,粗俗的说就是不同的引用垃圾回收的力度不同。强引用:只要引用存在,垃圾回收器永远不会回收Object obj = new Object();//可直接通过obj取得对应的对象 如obj.equels(new Object());而这样 obj对象对后面new Object的一个强引用,只有当obj这个引用被释放之后,对象才会被释放掉,这也是我们经常所用到的编码形式。软引用:非必须引用,内存溢出之原创 2022-02-24 11:35:49 · 97 阅读 · 0 评论 -
maven helper引入包和依赖包查看
简单记法(正常父子顺序颠倒)原创 2022-01-13 19:44:58 · 228 阅读 · 0 评论 -
java判断各种类型是否为空代码
1、判断字段long int等类型不为空情况Long sellerId = resultDTO.getDistributorId();Objects.nonNull(sellerId)Objects.isNull(sellerId)2、判断字段字符串类型为空,空格,tab是空的,常用于前端校验StringUtils.isBlank(chatRoomQuery.getTenantId())StringUtils.isNoneBlank(chatRoomQuery.getTenantId())//原创 2022-01-13 18:40:48 · 8719 阅读 · 1 评论 -
HashMap多线程死循环问题
HashMap多线程死循环问题HashMap不是线程安全的,在被多线程共享操作时,会有问题,具体什么问题呢,一直没有个清晰的理解,今天写了个测试程序调了一下,才明白其中道理。主要是多线程同时put时,如果同时触发了rehash操作,会导致HashMap中的链表中出现循环节点,进而使得后面get的时候,会死循环。【关于什么是rehash,读者可以自行去google了】参考:https://blog.csdn.net/qq_25026989/article/details/89527782?utm_me原创 2022-01-12 12:17:05 · 282 阅读 · 0 评论 -
Java判断语句中判断条件的执行顺序
if判断里面如果是多个条件的判断,会按照从前往后的顺序执行。基本所有语言都是一致的设计,这样做能提高程序的效率比如:if ( conditionA && conditionB ) 和 if ( conditionA || conditionB )(1)、如果conditionA是false的话,那么if ( conditionA && conditionB )就不用判断conditionB了,直接为false(2)、如果conditionA是ture的话,那么if (原创 2022-01-12 12:14:28 · 1207 阅读 · 0 评论 -
java函数加不加static有何不同
java中声明为static的方法称为静态方法或类方法。静态方法可以直接调用静态方法,访问静态变量,但是不能直接访问实例变量和实例方法。静态方法中不能使用this关键字,因为静态方法不属于任何一个实例。静态方法不能被子类的静态方法覆盖。例如:static class CompanyEmployee{public static string GetCompanyName(string name) { ... }public static string GetCompanyAddress(string原创 2022-01-06 22:09:22 · 1425 阅读 · 0 评论 -
BitMap的原理以及运用
位图(Bitmap),即位(Bit)的集合,是一种数据结构,可用于记录大量的0-1状态,在很多地方都会用到,比如Linux内核(如inode,磁盘块)、Bloom Filter算法等,其优势是可以在一个非常高的空间利用率下保存大量0-1状态。BitMap的原理BitMap 的基本原理就是用一个bit 位来存放某种状态,适用于大规模数据,但数据状态又不是很多的情况。通常是用来判断某个数据存不存在的。举例:在Java里面一个int类型占4个字节,假如要对于10亿个int数据进行处理呢?10亿*4/1024原创 2022-01-06 11:36:15 · 16587 阅读 · 0 评论 -
彻透理解==、equals和hashCode
一、equals和hashCode方法主要的区别在于:性能,可靠性;对于需要大量并且快速对比,如果都用equals比较效率太低,所以每当需要对象比较时,先用hashCode对比,如果hashCode值不一样,两对象肯定不相等,也就没必要再用equals比较。1、hashcode和equals的区别equals和hashCode方法主要的区别在于:性能,可靠性;equals方法:因为hashCode并不是完全可靠的,有时候不同的对象生成的hashCode也可能一样(生成hashCode值的公式可能存在原创 2022-01-06 11:21:41 · 1367 阅读 · 0 评论 -
HashMap多线程死循环问题
HashMap多线程死循环问题HashMap不是线程安全的,在被多线程共享操作时,会有问题,具体什么问题呢,一直没有个清晰的理解,今天写了个测试程序调了一下,才明白其中道理。主要是多线程同时put时,如果同时触发了rehash操作,会导致HashMap中的链表中出现循环节点,进而使得后面get的时候,会死循环。【关于什么是rehash,读者可以自行去google了】原文链接:https://blog.csdn.net/qq_25026989/article/details/89527782...转载 2021-12-30 13:56:11 · 133 阅读 · 0 评论 -
springboot Interceptor拦截器excludePathPatterns忽略失效问题
excludePathPatterns方法是排除访问路径,但是当你排除的url路径在项目中并不存在的时候,springboot会将路径编程/error,从而无法进行排除.例如下面代码:registry.addInterceptor(new MyInterceptor()).addPathPatterns("/**").excludePathPatterns("/login");如果/login这个访问路径,在项目中不存在,那么当你访问http://xxxx/login的时候,依然会被拦截,..原创 2021-12-24 19:14:16 · 1879 阅读 · 0 评论 -
使用mybatis-plus查询列表,如果查询不到数据,会返回[],而不是null的源码探讨
首先从源码中看出,mybatis-plus查询列表selectList()是调用 org.apache.ibatis.session.SqlSession 包下的selectList()方法。找到ibatis中DefaultSqlSession中的selectList()方法一直往下找,直到DefaultResultSetHandler类,可以看到handleResultSets()方法最终返回的是 multipleResultsfinal List multipleResults =.原创 2021-12-07 11:35:16 · 3683 阅读 · 0 评论 -
MySQL 默认隔离级别是RR,为什么阿里等大厂会改成RC?
我之前写过一篇文章《为什么MySQL选择REPEATABLE READ作为默认隔离级别?》介绍过MySQL 的默认隔离级别是 Repeatable Reads以及背后的原因。主要是因为MySQL在主从复制的过程是通过bin log 进行数据同步的 ,而MySQL早期只有statement这种bin log格式,这种格式下,bin log记录的是SQL语句的原文。当出现事务乱序的时候,就会导致备库在 SQL 回放之后,结果和主库内容不一致。为了解决这个问题,MySQL默认采用了Repetable Rea原创 2021-12-02 15:46:17 · 138 阅读 · 0 评论 -
基本类型数组与包装类型数组相互转换工具类
/** * 基本类型数组与包装类型数组相互转换的工具类 */public class CastArrayUtil { /** * 将基本类型数组转换为对应的包装类型数组 * * @param original * @return */ public static Byte[] toWrap(byte[] original) { int length = original.length; Byte[]原创 2021-11-26 15:25:18 · 182 阅读 · 2 评论 -
spring 环绕通知 ProceedingJoinPoint 执行proceed方法的作用是什么
java spring 环绕通知 ProceedingJoinPoint 执行proceed方法的作用是什么 ?环绕通知 ProceedingJoinPoint 执行proceed方法的作用是让目标方法执行,这也是环绕通知和前置、后置通知方法的一个最大区别。简单理解,环绕通知=前置+目标方法执行+后置通知,proceed方法就是用于启动目标方法执行的....原创 2021-11-22 22:26:02 · 2677 阅读 · 0 评论 -
幂等处理技术方案
一、背景我们实际系统中有很多操作,是不管做多少次,都应该产生一样的效果或返回一样的结果。 例如1. 前端重复提交选中的数据,应该后台只产生对应这个数据的一个反应结果;2. 我们发起一笔付款请求,应该只扣用户账户一次钱,当遇到网络重发或系统bug重发,也应该只扣一次钱;3. 发送消息,也应该只发一次,同样的短信发给用户,用户会哭的;4. 创建业务订单,一次业务请求只能创建一个,创建多个就会出大问题等等很多重要的情况都需要幂等的特性来支持。二、幂等性概念幂等(idempotent、idempotence)原创 2021-11-11 12:05:39 · 234 阅读 · 0 评论 -
mybatis-plus字段更新设置null
@TableField(updateStrategy = FieldStrategy.IGNORED)原创 2021-09-09 15:52:46 · 75 阅读 · 0 评论 -
SpringCloud与Dubbo的区别
1.SpringCloud与Dubbo的区别两者都是现在主流的微服务框架,但却存在不少差异:初始定位不同:SpringCloud定位为微服务架构下的一站式解决方案;Dubbo 是 SOA 时代的产物,它的关注点主要在于服务的调用和治理生态环境不同:SpringCloud依托于Spring平台,具备更加完善的生态体系;而Dubbo一开始只是做RPC远程调用,生态相对匮乏,现在逐渐丰富起来。调用方式:SpringCloud是采用Http协议做远程调用,接口一般是Rest风格,比较灵活;Dubbo是采用D原创 2021-08-08 22:43:15 · 216 阅读 · 0 评论 -
警告: Runner org.junit.internal.runners.ErrorReportingRunner (used on class cn.star.MybatisTest)
bug描述:在Springboot整合Junit的时候编写测试类进行测试时出现以下错误:十一月 28, 2019 2:53:48 下午 org.junit.vintage.engine.descriptor.RunnerTestDescriptor warnAboutUnfilterableRunner警告: Runner org.junit.internal.runners.ErrorReportingRunner (used on class cn.star.MybatisTest) does原创 2021-07-20 13:10:59 · 395 阅读 · 1 评论 -
Git使用之(pathspec master did not match any file(s) known to git) 问题解决
Git使用之(pathspec master did not match any file(s) known to git) 问题执行命令git checkout master报错如下:error: pathspec 'master' did not match any file(s) known to git解决办法先看下分支git branch -a 查询结果* develop remotes/composer/develop remotes/composer/featu原创 2021-07-15 14:44:46 · 2863 阅读 · 2 评论 -
maven中的distributionManagement的作用
mvn install 会将项目生成的构件安装到本地Maven仓库,mvn deploy 用来将项目生成的构件分发到远程Maven仓库。本地Maven仓库的构件只能供当前用户使用,在分发到远程Maven仓库之后,所有能访问该仓库的用户都能使用你的构件。我们需要配置POM的distributionManagement来指定Maven分发构件的位置,如下:Xml代码 <project> ... <distributionManagement>原创 2021-07-15 14:20:29 · 453 阅读 · 0 评论 -
java stream 多个filter_Java 8 lambdas多个过滤器调用
当在Java 8 lambda表达式中使用filter(Predicate谓词)调用时,我有两个想法是关于是否将所有Predicate逻辑放在一个调用中,还是链式过滤器(Predicate谓词)在适当情况下呼吁提供可读性.我认为链接过滤器(Predicate谓词)调用会很便宜,因为它们还没有遇到终结符,所以在可读性方面会犯错,但我对Streams API的知识不够自信完全明白什么是权衡取舍.借助以下示例(考虑更复杂的谓词),哪种实现更优越:List< Person> usingOneFil原创 2021-07-08 18:02:26 · 1759 阅读 · 0 评论 -
java 8 stream list操作分组、过滤、求和、最值、排序、去重
java 8 lambda表达式list操作分组、过滤、求和、最值、排序、去重java8的lambda表达式提供了一些方便list操作的方法,主要涵盖分组、过滤、求和、最值、排序、去重。跟之前的传统写法对比,能少写不少代码。新建实体类package com.vvvtimes.vo; import java.math.BigDecimal;import java.util.Date; public class User { private Long id; //姓名原创 2021-07-08 17:34:44 · 9954 阅读 · 0 评论