![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
技术--开发类
付三三_
若转载原创,请知悉本人。。
展开
-
Failed to resolve org.junit.platform:junit-platform-launcher:1.x.x错误解决
在使用SpringBoot测试时如果出现Failed to resolve org.junit.platform:junit-platform-launcher:1.x.x这样的问题,最主要的问题是IntelliJ IDEA版本和junit版本不适配问题,所以。方案一:将IntelliJ IDEA的版本升级到2020以上的版本。方案二:直接在项目的pom.xml文件中添加如下依赖。reload project即可解决。实际开发过程中,运行单测报。原创 2023-03-16 17:17:27 · 4203 阅读 · 0 评论 -
com.alibaba.fastjson.JSONException: write javaBean error, fastjson version 1.2.83, class XXX fieldNa
问题:但是报com.alibaba.fastjson.JSONException: write javaBean error, fastjson version 1.2.83, class XXX fieldName 0 错误,通过了解是每一个entity中若是有null字段存在,就会转换异常,看报错日志以为是fastjson等错误,其实不是。在 JSONObject.toJSONString()方法加上参数SerializerFeature.IgnoreNonFieldGetter解决。原创 2023-03-01 18:30:12 · 5693 阅读 · 1 评论 -
for循环三种跳出循环的方法(retrun、continue、break)Mark
break语句只有在循环语句和switch语句中使用才是合法的,经常用来跳出循环,不会执行后续循环,但是会继续执行循环之后的。3、return:指的是跳出for循环,且不执行for循环之外的语句,直接跳出当前函数,返回return后的值。不同的是,它不是退出一个循环,而是跳出当前循环,进行下一轮循环】1、continue:指的是跳出当前循环,即不执行continue后的语句,直接进入下次循环。2、break:指的是跳出for循环本身,不再进行之后的循环,但可以执行for循环之外的语句。原创 2022-12-16 16:24:18 · 61013 阅读 · 0 评论 -
【线程池】线程池异步执行操作
需求:实际开发中,主线程操作执行完成之后,然后子线程继续异步执行后续操作。我们可以采用线程池的方式,简介和使用详见【线程池《一》】线程池的基本原理,看完就懂了_Little Feel的博客-CSDN博客1. 为什么要用线程池降低资源消耗。通过重复利用已创建的线程降低创建/销毁线程造成的消耗提高响应速度。当任务到达时,任务可以不需要等到线程创建就立即执行提高线程的可管理性。线程时稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的分配/调优和监控。2. Threa原创 2022-03-03 16:04:39 · 1681 阅读 · 0 评论 -
【FeignClient】FeignClient调不通的直接原因
通过@FeignClient去调用其他系统的服务接口,一直返回null,调不同的原因要么是配置错误,要么是在启动类@EnableFeignClients有没有配置这个client原创 2021-11-24 11:38:24 · 2503 阅读 · 0 评论 -
【git】由其中一个分支往另一个分支copy提交的代码
Markgit cherry-pick commitId1.git log查看需要迁移的提交的commitId,记录下来2.切换到自己放代码的分支git chekout xxx,然后执行git cherry-pick commitIdMark下。原创 2022-02-18 17:40:04 · 413 阅读 · 0 评论 -
【CAS】CAS在实际开发中的简单使用
若不太了解cas,可参考之前我总结的cas详解看下,在这篇文章中就简单讲解下cas在实际开发中的使用【CAS】解释下CAS,CAS刨析_Little Feel的博客-CSDN博客实际项目中:若是遇到状态流转的情况,过程a从1更新为2,过程b再由2更新为3,若是过程b更新调用逻辑比a先调用,这个时候就会出现状态问题,直接就会状态先变更为3,然后在变更为2,为了出现上述状况。所以这个时候就会引入CAS的原理:比较并更新。简单的实现就是update table set status=3 where原创 2021-09-16 15:56:03 · 623 阅读 · 0 评论 -
feignClient异常合集Mark
问题1:feignClient调用报异常cause:Content-Type cannot contain wildcard type ‘*’是因为远程调用的时候入参识别不了application/json解决办法:在方法上加上类型即可consumes = MediaType.APPLICATION_JSON_VALUE @RequestMapping(value = "/xxx/xxx/xxx/xxx/xxx/xxx/result",method = RequestMethod.GET, cons转载 2021-09-16 10:00:17 · 618 阅读 · 0 评论 -
【AOP】aop代码解决实际小问题,小记
背景:springboot项目下,我们的代码中有很多处调用了其他系统,但是其他系统的后期可能就不调用了。要是每个代码的地方都要写一段if代码来判断下或者去逐个删除下,既费时又不安全,所以这个时候就引用了aop面向切面编程。具体实现:@Aspect@Slf4j@Componentpublic class SystemAspect { @Value("${xxxx.xxxx.xxxx.xxxx.xxxx:true}") private Boolean sysOldSystem;原创 2021-07-30 19:27:42 · 309 阅读 · 0 评论 -
【mybatis的小错误】mybatis-Invalid value for getInt() - ‘id‘
错误:Error attempting to get column 'id' from result set. Cause: java.sql.SQLException: Invalid value for getInt() - 'id'原因:看错误意思就以为是mapper和实体的id类型不一致导致的,查看了一下发现是一样的,然后就仔细查看mapper中的SQL。终于发现是手敲单引号导致的——粗心大意上面是错误的,下面是正确的。(虽然上面是英文标点符号,但是还是不行,需要用特定的)...原创 2021-07-29 10:45:53 · 632 阅读 · 0 评论 -
【stream】jdk1.8中stream流的第n+1种用法,去除重复list集合
需求:若获取的list集合有重叠,则去除重复的集合,然后展示思考:若是判断重复对象,可以重写对象的equales方法进行判断,list集合则用.distinct()即可实现思路:先把所有的集合放在一起,然后使用stream的distinct()方法去重示例:public static List<Test1> ss() { List<Test1> instruments = new ArrayList<>(); instr原创 2021-05-26 21:52:28 · 686 阅读 · 0 评论 -
【stripTrailingZeros】stripTrailingZeros().toPlainString()方法
toPlainString():返回不带指数字段的此 BigDecimal 的字符串表示形式stripTrailingZeros():返回一个BigDecimal,它在数值上等于这一个,但表示形式移除所有尾部零public static String regularBigDecimalFromBigDecimal(final BigDecimal data){ return data.setScale(8, RoundingMode.FLOOR).stripTrailingZeros原创 2021-05-24 16:28:52 · 1428 阅读 · 0 评论 -
【BeanUtils.copyProperties】BeanUtils.copyProperties解决对象中字段太多赋值问题
需求:已知对象1中的数值和对象2中的数值,对象1中的id和对象2中的favoId是相同的,想把对象1和2数据整合到一起,我们就新建一个对象All,字段包含对象1和2,把对象1和2都放入到all对象中,可以用到BeanUtils.copyProperties进行对象赋值。若是字段很少,可以用set,get,若是很多字段,实现起来就很麻烦。BeanUtils.copyProperties(源兑现,目标对象)示例:对象1package com.c3stones.entity;impor.原创 2021-05-21 20:38:50 · 1045 阅读 · 1 评论 -
CSV实现上传下载,前后端实现代码
需求:CSV实现上传下载<Input className="upload-input" type="file" onChange={(e) => this.onFileChosen(e)} style={{width: 150, marginRight: 20}}/> {/*<span style={{color: 'red'}}>格式为.excel</span>*/} <Butt原创 2021-04-22 21:41:52 · 565 阅读 · 0 评论 -
实现:三个数组中分别取里面的第一个值,第二个值,第三个值重新组成数组
需求:a,b,c三个list中分别又有三个list,然后分别取a,b,c中的第一个list值,第二个list值,第三个list分别组成新的list(a,b,c中的值可能为空,最大为3个list)思路:先算出a,b,c三个当中最大的长度,然后for循环依次取a,b,c的第一个值放到list中,第二个值放list中,第三个值放list中。注:要考虑到a,b,c中值不全的情况实现SimpleProInstrumentVO类@Data@NoArgsConstructor@AllArgsCon原创 2021-04-22 21:10:09 · 955 阅读 · 0 评论 -
mysql常见错误 Mark
Mysql错误:【1】check the manual that corresponds to your MySQL server version for the right syntax to use near 'modify_time = '2021-03-12 18:27:51.227' 【modify_time前面少,号】check the manual that corresponds to your MySQL server version for the right...原创 2021-03-12 18:33:25 · 117 阅读 · 0 评论 -
【JDK1.8】JDK1.8新特性
1.Java 8 lamda Stream的Collectors.toMap参数使用toMap()函数之后,返回的就是一个Map了,自然会需要key和value。toMap()的第一个参数就是用来生成key值的,第二个参数就是用来生成value值的,第三个参数用在key值冲突的情况下,如果新元素产生的key在Map中已经出现过了,第三个参数就会定义解决的办法。List<Student> indices = getIndices(brokerId, null);Map<Str原创 2021-03-07 17:56:19 · 833 阅读 · 1 评论 -
Java中Map的keySet()、entrySet()详解
由于Map中存放的元素均为键值对,故每一个键值对必然存在一个映射关系。Map中采用Entry内部类来表示一个映射项,映射项包含Key和ValueMap.Entry里面包含getKey()和getValue()方法Set<Entry<T,V>> entrySet()该方法entrySet()返回值就是这个map中各个键值对映射关系的集合。可使用它对map进行遍历。Iterator<Map.Entry<Integer, Integer>> it原创 2021-02-22 13:19:04 · 2732 阅读 · 0 评论 -
【JVM+GC】JVM的理解以及总结,通俗易懂
【问题一】Jvm的体系结构:Jdk 减 工具=jre,jre 减 类库=jvm方法区和堆被所有线程共享的Java栈(虚拟机栈)=白色运行时数据区线程私有线程私有,线程1份2个线程2份虚拟机栈:存储当前线程运行方法所需的数据,指令,返回地址包含main方法和所有运行的方法。方法(栈帧)中包含局部变量表(this,八大基本数据类型+引用(地址hotspot版本(句柄池)直接指针))栈帧包括操作数栈/动态链接(运行时的多态)/返回地址本地方法栈nativ...原创 2021-01-19 10:36:53 · 369 阅读 · 0 评论 -
【阻塞队列《一》】阻塞队列的深入浅出
【问题一】熟悉阻塞队列的概念队列:先到先得阻塞队列:首先它是一个队列,而一个阻塞队列在数据结构中所起的作用大致是:线程1往阻塞队列中添加元素,而线程2从阻塞队列中移除元素。1.当阻塞队列是空时,从队列中获取元素的操作将被阻塞2.当阻塞队列是满时,往队列里添加元素的操作将被阻塞试图从空的阻塞队列中获取元素的线程将会阻塞,直到其他的线程往空的队列中插入新的元素。试图往已满的阻塞队列中添加新元素的线程同样也会被阻塞,直到其他线程从队列中移除一个或多个元素或者多个元素或者完全清空队列后使队列原创 2021-01-18 09:00:36 · 150 阅读 · 3 评论 -
【读写锁小总结】ReentrantReadWriteLock的Demo实现
在实际的业务场景中,线程去访问一个资源,都是需要很多线程需要共享读的,写的时候可以独占锁,所以JUC就衍生出来ReentrantReadWriteLock,读写锁。而ReentrantLock和Synchronized和lock都满足不了这个需求。独占锁:指该锁一次只能被一个线程所持有。对ReentrantLock和Synchronized而言都是独占锁。共享锁:指该锁可被多个线程所持有。对ReentrantReadWriteLock,其读锁是共享锁,其写锁是独占锁。读锁的共享锁可保证并发读是非常高原创 2020-12-30 22:10:34 · 376 阅读 · 4 评论 -
【并发修改异常】常见的java.util.ConcurrentModificationException异常
【1】ArrayList是线程不安全的,因为add方法未加锁,若是在多线程的情况下,就会导致并发修改异常List<String> list= new ArrayList<>();//newCopyOnWriteArrayList() 写时复制for(int i=1;i<=30;i++){ new Thread(()->{ list.add(UUID.randomUUID().toString().substring(0,8)); .原创 2020-12-28 22:34:46 · 221 阅读 · 0 评论 -
【定时任务】调度器Quartz和线程池的关系浅解
创建要被定执行的任务类 【1】这一步只需要创建一个实现了org.quartz.Job接口的类,并实现这个接口的唯一一个方法execute(JobExecutionContext arg0) throws JobExecutionException即可。如package com.fync.quartz;import java.text.SimpleDateFormat;import java.util.Date;import org.quartz.Job;import org.quar...原创 2020-12-16 17:00:25 · 2020 阅读 · 0 评论 -
【ActiveMQ】ActiveMQ详细入门使用教程
ActiveMQ介绍MQ是消息中间件,是一种在分布式系统中应用程序借以传递消息的媒介,常用的有ActiveMQ,RabbitMQ,kafka。ActiveMQ是Apache下的开源项目,完全支持JMS1.1和J2EE1.4规范的JMS Provider实现。特点:1、支持多种语言编写客户端2、对spring的支持,很容易和spring整合3、支持多种传输协议:TCP,SSL,NIO,UDP等4、支持AJAX消息形式:1、点对点(queue)2、一对多(topic)...转载 2020-11-17 22:06:53 · 1791 阅读 · 0 评论 -
【内存溢出问题】实际开发中,一次从数据库取出过多数据,导致内存溢出问题
一.【实际开发中内存溢出问题】1.原因分析: 业务操作人员在进行历史交易查询时,查询条件中的业务编号必输项输入了空格,系统在判断输入项时先判断了非空,然后做了trim(),trim后才拼条件查询(正确的控制应该先进行trim(),然后在进行非空判断来控制必输项),导致查询数量较大,每次达十万多条,反复多次后导致系统内存溢出,server7服务终止,正在处理的交易超时。 (不规范应用查询问题,查询范围不做控制,内存中加载的数据量过于庞大)2.解决措施: 内...原创 2020-11-06 11:23:40 · 5756 阅读 · 0 评论 -
【系统序列号生成问题】实际开发中生成序列号导致的问题小结
背景:序列号是业务区分标识,一般情况下就是区分一只交易和另一支交易的标识,实现序列号可以用程序实现,也可以用Oracle的序列来实现,Oracle的序列就是一个原子力度的累加器,通过调用它来实现自增并生成业务序号。但是序列号可能会重复引起其他问题。在实际开发过程中,Java程序实现或者Oracle数据库实现生成序列号/流水号的规则,用于区分每条数据的唯一性,然后用于业务逻辑调用/查询等1.序列号常用生成方式及其特点 方式一: 简述:使用数据库系统序列sequ...原创 2020-11-17 21:19:22 · 1157 阅读 · 0 评论 -
【xshell脚本自动化发布】Linux环境下Xshell脚本自动化替换包升级小结
1.准备-下载版本发布包从ftp获取到版本发布包放到指定目录下,人工查看该目录下升级包是否下载成功。ReadyTask.shaDate=`date +%Y%m%d` cd #服务器中放版本发布包的位置 mkdir $aDate cd $aDate echo "当前位置:" pwd ##下面就是从ftp中下载下来发布包 FTP_SERVER:ftp的地址;FTP_USER:ftp用户名;FTP_PWD:ftp密码;${FTP_DOWNLOAD_FILE_PATH}:ftp中放发布包的位原创 2020-11-04 16:44:53 · 753 阅读 · 0 评论 -
【Oracle版本升级】在实际开发中,Oracle11G版本升级到19C过程中遇到的问题
Oracle升级性能优化须注意的 1.在升级过程中,简单SQL(指单表操作,where条件与索引第一二键匹配)通常不会有性能影响,这类SQL不是最需要关注的。 2.复杂的sql(比如多子表查询、多表关联、循环嵌套)运行过程中,有些SQL会遇到性能变化情况,重点关注。 3.Oracle优化器方面,优化器模式有两种主要原则: (1)第一种模式_optimzer_cost_based_transformation=off, _optimize...原创 2020-11-03 11:11:53 · 5406 阅读 · 0 评论 -
【关键字rownum和分页的关系】Oracle中rownum与分页之间的关系
rownum 对于基表,在insert记录时,Oracle就按照insert的顺序,将rownum分配给每一行记录,因此在select一个基表的时候,rownum的排序是根据insert的顺序显示的。rownum使用的一些技巧: 例如,1、我们只想看到表中的第一条记录,select * from table where rownum=1; 2、我们想看表中的前两条记录,select * from table where row...原创 2020-10-22 14:59:03 · 276 阅读 · 0 评论 -
【spring boot整合MySQL】Idea新建spring-boot,整合MySQL
运行一个简单的springboot案例,项目源码中有详细介绍和搭建。项目源码:https://download.csdn.net/download/qq_30546099/12850719模块分布:需要注意的几点:每新建一个springboot项目会自动生成一个SpringBootApplication,运行此application即可。 若是idea中有插件IDEA中mybatis插件自动生成手写sql的xml文件,数据处理层点击Create delete statement..原创 2020-09-16 17:20:36 · 232 阅读 · 0 评论 -
【Redis】Redis服务端客户端安装启动
实际开发过程中,一般redis都用做缓存简介:Redis是一款内存高速缓存数据库;数据模型为:key - value,非关系型数据库使用的存储数据的格式;可持久化:将内存数据在写入之后按照一定格式存储在磁盘文件中,宕机、断电后可以重启redis时读取磁盘中文件恢复缓存数据;分布式:当前任务被多个节点切分处理,叫做分布式处理一个任务。单个服务器内存,磁盘空间有限,无法处理海量的缓存数据,必须支持分布式的结构。Redis服务端和客户端下载地址https://download.csdn.原创 2020-09-08 19:43:42 · 252 阅读 · 1 评论 -
【MySQL安装】Mac双系统Win10系统安装MySQL服务端走过的弯路
在Mac本双系统中MySQL服务端安装过程中出现starting Server停止的问题,然后安装了免安装版本的解决一系列问题安装成功。公司培训spring boot项目和MySQL整合,我的是Mac双系统Win10系统,刚开始安装的mysql-5.7.17安装版。我安装MySQLserver端的时候一到starting server就停止,然后服务启动不起来。然后我很顽强的卸了装,装了卸(都是看百度中说的反复操作,耽误了很多时间,然而不见成效,可能针对Windows电脑或许有效果)。原创 2020-09-06 12:12:40 · 1308 阅读 · 0 评论 -
【postman】使用postman测试,教程大全
win64位-6.0.10下载地址:链接:https://pan.baidu.com/s/1XM_yfih5p7nODyC_G6qM7g提取码:sx3x1.下载完成后双击安装,安装过程很简单,傻瓜式操作即可2.安装完之后可登录可不登录可以做很作设置,网上有很多类似的可参考,这个描述的就特别好:https://www.jianshu.com/p/97ba64888894也可以直接就用,大概描述下借鉴别人的描述很清楚。写的太好了,我只是抄下来一点以便于复习,想看完整版就去原博主那。.转载 2020-09-04 17:08:17 · 1276 阅读 · 0 评论 -
JAVA中Action层, Service层 ,modle层 和 Dao层的区分
结合了ssh框架Modle层就是对应的数据表的实体类以及实体类的映射层;Dao层是使用了Hibernate连接数据库、操作数据表;Service层(存在的意义就是便于事务处理,AOP切面操作。另外Service层也属于面向接口化编程,使上级代码对下级代码代码的依赖性减少)应用对应的Dao数据库操作,可以在这个层编写自己有要求的代码;action层引用了对应的Service层,在这里结合Struts原创 2017-05-05 13:56:38 · 370 阅读 · 0 评论 -
【转载】简单好用的粉碎文件方法
在卸载软件后,经常有一些顽固的文件怎么也删不掉,下面是我搜索用过的一个简单好用的方法桌面右键-新建-文本文档-(双击桌面的这个新建的文本文档,把下面的命令复制后粘贴进去)写入下列命令: DEL /F /A /Q \\?\%1 RD /S /Q \\?\%1 文件-另存为"文件名.bat" (名字叫什么都可以,不过后缀一定要".bat")然后,把要删除的文件或者目录拖放到原创 2017-05-05 13:56:41 · 1038 阅读 · 0 评论 -
Redis是什么?Redis数据库全解?
1. Redis是什么这个问题的结果影响了我们怎么用Redis。如果你认为Redis是一个key value store(键值存储), 那可能会用它来代替MySQL;如果认为它是一个可以持久化的cache(缓存), 可能只是它保存一些频繁访问的临时数据。Redis是REmote DIctionary Server的缩写,在Redis在官方网站的的副标题是A persistent key-value原创 2017-05-05 13:56:44 · 2197 阅读 · 0 评论 -
导入Android项目错误类型1
导入Android项目出现以下错误:提示Android requires compiler compliance level 5.0 or 6.0. Found '1.7' instead. Please use Android Tools > Fix Project Properties.解决方法:1.项目右键 ->android tools->Fix Project2.如果不可以,检查Proj原创 2017-05-05 13:57:07 · 197 阅读 · 0 评论 -
Echarts中的gauge仪表盘.(特殊加一句代码)
? ECharts // 添加一行代码//var timeTicket;//配置echarts // 路径配置 require.config({ paths: { echarts: '../dist' } });原创 2017-05-05 13:57:34 · 10938 阅读 · 1 评论 -
【Linux巡检日志】给Linux服务器添加定时巡检日志
问题描述:Linux服务器中,想在某个时间定时生成巡检日志,如:想看该服务器中哪些用户登录了,定时获取系统网络信息再或者CPU占用率,那么就用到了crontab定时命令了,在命令窗口输入crontab -l,查看Linux服务器中存在的定时任务,crontab -e:就是编辑自己的定时任务,点击i——然后添加自己需要自动执行的巡检日志脚本的路径和定时生成的时间。添加格式:* * * * * ...原创 2019-09-23 16:25:59 · 1255 阅读 · 0 评论 -
常见的正则表达式
一、校验数字的表达式 1 数字:^[0-9]*$ 2 n位的数字:^\d{n}$ 3 至少n位的数字:^\d{n,}$ 4 m-n位的数字:^\d{m,n}$ 5 零和非零开头的数字:^(0|[1-9][0-9]*)$ 6 非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(.[0-9]{1,2})?$ 7 带1-2位小数的正数或负数:^(\-)?\d+(\.\原创 2017-05-05 13:56:29 · 244 阅读 · 1 评论