commons-collections4
https://commons.apache.org/ 引入依赖123456<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-collections4 --><dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-collections4</artifactId> <version>4.4</version></dependency> CollectionUtils 集合工具类12345678910111213141516添加/删除:addAll/addIgnoreNull/retainAll/removeAll/获取: find/get/containsAny/index/size/sizeIsEmpty/select/selectRejected/subtract typedColl...
commons-io
https://commons.apache.org/ 引入依赖12345<dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.11.0</version></dependency> FileUtils 文件操作工具类123456789101112文件夹操作: copyDirectory/deleteDirectory/cleanDirectory/getTempDirectory/getTempDirectoryPath moveDirectory/moveDirectoryToDirectory/moveFileToDirectory/moveToDirectory forceMkdir/getUserDirectory/getUserDirectoryPath文件操作: touch/copyFile/copyURLToFile/move...
commons-bean
https://commons.apache.org/ 引入依赖12345<dependency> <groupId>commons-beanutils</groupId> <artifactId>commons-beanutils</artifactId> <version>1.9.4</version></dependency> BeanUtils/BeanUtilsBean123拷贝: cloneBean/copyProperties/copyProperty获取:getArrayProperty/getSimpleProperty/getProperty其他操作:setProperty设置属性 populate将Bean设置到Map中 describe将Bean转成Map PropertyUtils类1234567判断:isReadable/isWriteable获取: getProperty/getSimpleProperty/getPro...
commons-lang3
引入依赖12345<dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.12.0</version></dependency> 数据类型工具类StringUtils 字符串工具类123456789101112包含判断方法:contains/containsXXX 字符串替换方法:replace/replaceXXX 获取子串:substring/substringXXX 判断方法:1、isEmpty/isNotEmpty/isBlank/isNotBlank/isNumeric/isWhitespace2、sartsWith/startsWithAny/endsWith/endsWithIgnoreCase索引(index):indexOf/indexOfXXX/tIndexOf/lastIndexOfXXX处理方法: ...
33 Java远程调试
1 server端启动命令 打jar包允许被远程调试 12java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=9091 -jar xxx.jar 参数说明 transport: 指定运行的被调试应用和调试者之间的通信协议,它由几个可选值: dt_socket:主要的方式,采用socket方式连接。 dt_shmem:采用共享内存方式连接,仅支持 Windows 平台。 server: 指定当前应用作为调试服务端还是客户端,默认为n。 如果你想将当前应用作为被调试应用,设置该值为 y,如果你想将当前应用作为客户端,作为调试的发起者,设置该值为n。 suspend: 当前应用启动后,是否阻塞应用直到被连接,默认值为 y。 在大部分的应用场景,这个值为 n,即不需要应用阻塞等待连接。一个可能为 y的应用场景是,你的程序在启动时出现了一个故障,为了调试,必须等到调试方连接上来后程序再启动。 address: 暴露的调试连接端口,默认值为 8000。 此端口一定不能与项目端口重复,且必须是服务器开放的端口...
2 版本操作
2 版本操作1 提交工作流 工作区:即自己当前分支所修改的代码,git add xx 之前的!不包括 git add xx 和 git commit xxx 之后的。 暂存区:已经 git add xxx 进去,且未 git commit xxx 的。 本地分支:已经git commit -m xxx 提交到本地分支的。 git add 文件名。 作用:将文件由 工作区 添加到 暂存区,暂存文件 git add –all 或者 git add -A 或者git add .(简写) 添加所有文件 git add a.txt b.txt 同时添加两个文件 git add *.js 添加当前目录下的所有js文件 git status 作用:查看文件的状态 命令:git status 命令:git stauts -s 简化日志输出格式 git commit 作用:将文件由 暂存区 添加到 仓库区 git commit -m “提交说明” 2 回滚工作流git reset 作用:版本回退,将代码恢复到已经提交的某一个版本中。 git reset –hard 版本号 将代码回退到...
gson
两种类型之间转换。Java对象和json格式之间转换。 序列化:转换成json格式 json字符串 json字节码 反序列化:转换成java格式 java对象 jsonobject如果没有指定java对象 1 Gson介绍GSON是Google提供的用来在Java对象和JSON数据之间进行映射的Java类库。可以将一个Json字符转成一个Java对象,或者将一个Java转化为Json字符串 在使用Gson时需要先引入Gson依赖123456<!-- https://mvnrepository.com/artifact/com.google.code.gson/gson --> <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.8.5</version> </dependency> 2 ...
micrometer
概述 https://blog.csdn.net/weixin_45994575/article/details/117733062 做度量指标收集。Micrometer提供了与供应商无关的接口,包括 timers(计时器), gauges(量规), counters(计数器), distribution summaries(分布式摘要), long task timers(长任务定时器)。它具有维度数据模型,当与维度监视系统结合使用时,可以高效地访问特定的命名度量,并能够跨维度深入研究。 支持的监控系统:AppOptics , Azure Monitor , Netflix Atlas , CloudWatch , Datadog , Dynatrace , Elastic , Ganglia , Graphite , Humio , Influx/Telegraf , JMX , KairosDB , New Relic , Prometheus , SignalFx , Google Stackdriver , StatsD , Wavefront 主要功能 提...
12 Bean生命周期
1 Bean生命周期创建 使用销毁 2 IOC容器创建3 AOP原理
04 缓存穿透、击穿和雪崩
在生产环境中,会因为很多的原因造成访问请求绕过了缓存,都需要访问数据库持久层,虽然对Redsi缓存服务器不会造成影响,但是数据库的负载就会增大,使缓存的作用降低 1 缓存穿透1、缓存穿透理解缓存穿透是指查询一个根本不存在的数据,缓存层和持久层都不会命中。在日常工作中出于容错的考虑,如果从持久层查不到数据则不写入缓存层,缓存穿透将导致不存在的数据每次请求都要到持久层去查询,失去了缓存保护后端持久的意义。 缓存穿透示意图:  缓存穿透问题可能会使后端存储负载加大,由于很多后端持久层不具备高并发性,甚至可能造成后端存储宕机。通常可以在程序中统计总调用数、缓存层命中数、如果同一个Key的缓存命中率很低,可能就是出现了缓存穿透问题。 造成缓存穿透的基本原因有两个。第一,自身业务代码或者数据出现问题(例如:set 和 get 的key不一致),第二,一些恶意攻击、爬虫等造成大量空命中(爬取线上商城商品数据,超大循环递增...














