- 博客(84)
- 资源 (9)
- 收藏
- 关注
原创 macos wireshark 抓取https包
3.1 用以下命令启动浏览器,第一个参数数是你的Chrome默认安装地址,第二个参数--ssl-key-log-file属性为步骤1.1创建的文件的地址。2.3 设置Pre-Master-Secret log filename 为步骤1.1 创建的文件地址。3.4 选中关注的http请求行,Fllow TLS Stream或Fllow Http Stream。2、设置wireshark tls属性,指定tls密钥存储文件。3.2 启动wireshark抓包。3.3 用http字样过滤要看的请求。
2023-05-31 19:49:31
3301
1
原创 macos wireshark无线网卡抓不到tcp包
......经过一番摸索,发现仅访问本机的网卡Loopback:lo0能正常抓tcp协议包,但是我的主要无线网卡Wi-Fi:en0却只能抓到一堆无线包。最近发现一件奇怪的事情,不论是最新下载的4.0.6或者老版本3.6.1的Wi-Fi 网卡en0,开始抓包后只有如上图所示一堆协议802.11的包,请求和响应的只也不是ip,而是mac地址。然后发现还有右边一个Monitor的按钮,尝试把它的✅去掉,Link-layer header神奇的变成了Ethernet。正常抓tcp包,问题解决!
2023-05-30 19:42:30
1579
1
原创 mybatis-generator插件如何修改配置文件路径
方法1:pom配置文件中指定配置文件路径 pom.xml中的插件配置,在configurationFile中指定文件路径为${basedir}/src/test/resources/generatorConfig.xml, 其中${baseDir}是内置变量,定位到当前maven(子)项目根目录 <build> <plugins> <plugin> <groupId>...
2021-07-28 19:11:35
1702
原创 解决The annotation @NotBlank is disallowed for this data type异常
JDK1.8环境下 springboot2集成hibernet-validation 6.0.7.FINAL作参数校验时,用javax.validation.constraints.NotBlank的注解出现了,The annotation @NotBlank is disallowed for this data type编译异常, import javax.validation.constraints.NotBlank;import javax.validation.constrain
2021-07-28 17:06:27
1760
原创 关于springboot的post application/x-www-form-urlencoded请求大小2MB限制问题
最近发现向springboot发起的Content-Type为application/x-www-form-urlencoded的post请求部分出现了400参数错误,可疑的地方就是post表单中有个String类型字段内容特别长,有2.7MB,缩短此字段长度请求参数就可以识别,反之全部请求参数都被“吞没”,通过本地模拟请求,可以排除网关限制。经过反复查阅,发觉是springboot默认的tomcat容器有post请求(仅针对Content-Type为application/x-www-form-urle
2021-07-27 20:16:34
3631
原创 HttpClient-4.5.2 实战
介绍:HttpClientFactory 相当与一个存储<String name,HttpClient instance>的map,不同业务需要不同的HttpClient。HttpClientUtil是一个工具类,以execute模版方法为核心,其他都是快捷方式。剥离出HttpClient实例化和HttpClientUtil工具方案集是为了减少冗余代码,缺点是每个HttpClientU...
2020-01-16 13:52:13
602
转载 HttpClient-4.5.2官方教程完整翻译
HttpClient 4.5.2前言超文本传输协议(HTTP)可能是当今互联网上使用的最重要的协议。网络服务,支持网络的设备以及网络计算的发展继续扩大了HTTP协议在用户驱动的Web浏览器之外的作用,同时增加了需要HTTP支持的应用程序的数量。尽管java.net包提供了通过HTTP访问资源的基本功能,但它并不能提供许多应用程序所需的全部灵活性或功能。HttpClient试图通过提...
2020-01-08 19:00:48
1517
转载 Spring常用的三种注入方式
Spring通过DI(依赖注入)实现IOC(控制反转),常用的注入方式主要有三种:构造方法注入,setter注入,基于注解的注入。构造方法注入先简单看一下测试项目的结构,用maven构建的,四个包:entity:存储实体,里面只有一个User类dao:数据访问,一个接口,两个实现类service:服务层,一个接口,一个实现类,实现类依赖于IUserDaotest:测试包在sp...
2019-12-24 16:53:07
2719
原创 mock生成java对象(支持集合嵌套)
import org.reflections.ReflectionUtils;import java.lang.reflect.Array;import java.lang.reflect.Field;import java.lang.reflect.ParameterizedType;import java.lang.reflect.Type;import java.util....
2019-11-05 18:56:11
1719
原创 K8S如何通过configmap将环境变量注入springboot应用
首先又一个开发环境的应用变量配置文件 demo-dev.propertiesdemo.jdbc.url=jdbc:mysql://127.0.0.1:3306/my_testdb?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&connectTimeout=500...
2019-09-27 16:46:29
6692
2
原创 mac解压jar文件
命令格式:tar -zxvf <源jar文件>-C <目标目录>-z:有gzip属性的,可选-x:解压,必须-v:显示所有过程,可选-f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接jar名,必须-C:指定目标目录,必须预先存在 ,可选,如果没有则解压到当前目录例子:tar -zxvf demo.jar -C demo ...
2019-09-24 19:30:09
32982
3
原创 菜单树Java实现
import java.io.Serializable;import java.util.ArrayList;import java.util.List;import com.alibaba.fastjson.JSONObject;/** * 描述:简单树型结构,一定要正确构建,否则容易陷入死循环 * * @author jianlin.zhu * @create 2019-...
2019-07-30 15:45:34
461
原创 为什么开发过程中debug模式和run模式启动Java应用耗时差距越来越大
检查下是不是设置了过多的断点,如果有清理下。run模式启动耗时 =debug模式启动耗时 +各个断点总耗时随着开发活动的进行,设置的断点越来越多,很多时候记得设置,也记得disable断点,就是没删除,反正很多时候也不会进断点,这就容易让人麻痹大意,然后每次debug启动越来越慢。。。正确的姿势是:debug启动慢了,就去打开Breakpoints窗口清理下。没事清理掉没用的断...
2019-06-14 17:21:09
2288
转载 常用英文命名和缩写
常用英文命名和缩写英文缩写 中文全称 英文全称 注释 分类 权重 addr 地址 address adm 管理员 administrator app 应用程序 application arg 参数 argument asm 集合 assemble avg 平均值 ave...
2019-05-06 11:17:31
1914
原创 POI若干疑难操作
一、POI控制某列只显示文本解决问题:身份证号在输入模版文件中显示为科学计数法XSSFCellStyle textColumnStyle = workbook.createCellStyle();XSSFDataFormat dataFormat = workbook.createDataFormat();textColumnStyle.setDataFormat(dataFormat....
2019-04-29 17:27:22
380
转载 apache commons工具类简介
一、Commons BeanUtils说明:针对Bean的一个工具集。由于Bean往往是有一堆get和set组成,所以BeanUtils也是在此基础上进行一些包装。二、Commons CLI说明:这是一个处理命令的工具。比如main方法输入的string[]需要解析。你可以预先定义好参数的规则,然后就可以调用CLI来解析。三、Commons Codec说明:这个工具是用来编码和解码...
2019-04-23 17:04:12
528
转载 分布式任务框架选型
任务框架需求:分布式任务框架,需要一个分布式锁,只有获得锁的才能执行任务。 解决方案:redis,zookeeper,DB 运维工具。日志、监控、任务配置等 高可用性。保证任务能够执行,且不重复跑。用途就是在分布式环境使用,可以轻松实现。第1、3点不复杂代码量也不多,可以自己实现,但第2点需要大量的code,需要从网上找现成的框架。下面调研了4种分布式任务调度框架,...
2019-03-30 17:39:27
292
转载 java 中的锁 -- 偏向锁、轻量级锁、自旋锁、重量级锁
之前做过一个测试,详情见这篇文章《多线程 +1操作的几种实现方式,及效率对比》,当时对这个测试结果很疑惑,反复执行过多次,发现结果是一样的: 1. 单线程下synchronized效率最高(当时感觉它的效率应该是最差才对); 2. AtomicInteger效率最不稳定,不同并发情况下表现不一样:短时间低并发下,效率比synchronized高,有时甚至比LongAdder还高出一点,但是高并...
2019-02-17 15:55:44
170
转载 Java并发:volatile内存可见性和指令重排
volatile两大作用1、保证内存可见性2、防止指令重排此外需注意volatile并不保证操作的原子性。(一)内存可见性1 概念JVM内存模型:主内存和线程独立的工作内存Java内存模型规定,对于多个线程共享的变量,存储在主内存当中,每个线程都有自己独立的工作内存(比如CPU的寄存器),线程只能访问自己的工作内存,不可以访问其它线程的工作内存。工作内存中保存了主内...
2019-02-17 11:53:42
230
原创 如何重构1000行以上方法或类
有些方法蕴含逻辑复杂,如果顺序编程可能达到千行以上,非常不好维护,看了《重构》这本书的同学可能会说,我可以强制将每个for循环,每段逻辑按照70行每函数方式抽取出来。然而...即使每段都抽取为70行以内(实际5~30行最佳),抽出的代码,大多以私有方法形式放置在同一个类里面,导致类大小膨胀,类的维护难度增加,指标不治本。今天介绍一个解决此类问题的通用方法。它就是:拦截过滤器模式http:/...
2019-02-15 16:11:25
685
转载 扩展ThreadPoolExecutor实现线程池监控
摘要:背景在开发中,我们经常要使用Executors类创建线程池来执行大量的任务,使用线程池的并发特性提高系统的吞吐量。但是,线程池使用不当也会使服务器资源枯竭,导致异常情况的发生,比如固定线程池的阻塞队列任务数量过多、缓存线程池创建的线程过多导致内存溢出、系统假死等问题。因此,我们需要一种简单的监控方案来监控线程池的使用情况,比如完成任务数量、未完成任务数量、线程大小等信息。Executo...
2018-12-06 17:07:26
3971
1
转载 GitBook 使用入门
本文选自《Markdown 实用指南》 作者:毕小烦GitBook 是一个基于 Node.js 开发的命令行工具,使用它可以很方便的管理电子书,GitBook 是目前最流行的开源书籍写作方案。使用 GitBook 可以让创作者专注写作,自由的挥洒,不必太多的关心内容排版、发布和版本管理等问题。除了通过 GitBook 命令行管理电子书外,还可以在线(gitbook.com)或者使用桌面编辑器 Gi...
2018-05-08 09:26:09
1303
原创 maven中央仓库下载慢怎么办(如何切换成aliyun仓库)
<mirrors> <mirror> <id>aliyun</id> <name>aliyun Maven</name> <mirrorOf>repo,repo1,repo2,central</mirrorOf&
2018-05-07 15:10:16
1720
转载 Maven:mirror和repository 区别
1 Repository(仓库)1.1 Maven仓库主要有2种:remote repository:相当于公共的仓库,大家都能访问到,一般可以用URL的形式访问local repository:存放在本地磁盘的一个文件夹,例如,windows上默认是C:\Users\{用户名}\.m2\repository目录1.2 Remote Repository主要有3
2018-05-07 15:03:19
373
转载 数据库隔离级别---MySQL的默认隔离级别就是Repeatable,Oracle默认Read committed,最高级别Serializable
数据库事务的隔离级别有4个,由低到高依次为Read uncommitted、Read committed、Repeatable read、Serializable,这四个级别可以逐个解决脏读、不可重复读、幻读这几类问题。 注意:我们讨论隔离级别的场景,主要是在多个事务并发的情况下,因此,接下来的讲解都围绕事务并发。 Read uncommitted 读未提交公司发工资了,领导把5...
2018-04-23 15:32:20
921
转载 dubbo从入门到深入——设计原理分析
本文基于dubbo文档,并结合自己的分析\理解。整体设计 这里写图片描述Dubbo 的核心领域模型Protocol 是服务域,它是 Invoker 暴露和引用的主功能入口,它负责 Invoker 的生命周期管理。Invoker 是实体域,它是 Dubbo 的核心模型,其它模型都向它靠扰,或转换成它,它代表一个可执行体,可向它发起 invoke 调用,它有可能是一个本地的实...
2018-04-20 16:52:49
631
转载 hive数据倾斜原因和解决方法
在做Shuffle阶段的优化过程中,遇到了数据倾斜的问题,造成了对一些情况下优化效果不明显。主要是因为在Job完成后的所得到的Counters是整个Job的总和,优化是基于这些Counters得出的平均值,而由于数据倾斜的原因造成map处理数据量的差异过大,使得这些平均值能代表的价值降低。Hive的执行是分阶段的,map处理数据量的差异取决于上一个stage的reduce输出,所以如何将数据均匀的...
2018-04-19 12:01:22
14662
原创 mongoclient like查询
要查询集合patient_1中name以new开头的用户 db.patient_1.find({name:{$regex:’new’}}); 或者 db.patient_1.find({name:/^new/}) 也能达到一样的效果 用同样的方式在mongoclient上查询第一种语法ok,第二种语法查询不到数据。 第一种语法: 第二种语法:错误或无结果 ...
2018-04-18 17:37:19
764
原创 spark No more replicas available for rdd异常
运行一个客户端模式spark程序出现No more replicas available for rdd异常,如下:18-04-16 18:01:53,750 INFO [dag-scheduler-event-loop] o.a.s.s.DAGScheduler [Logging.scala:54] Resubmitted ShuffleMapTask(11, 507), so mark...
2018-04-17 17:52:02
14418
2
转载 spark基本概念
spark应用涉及的一些基本概念: 1.mater:主要是控制、管理和监督整个spark集群2.client:客户端,将用应用程序提交,记录着要业务运行逻辑和master通讯。3.sparkContext:spark应用程序的入口,负责调度各个运算资源,协调各个work node上的Executor。主要是一些记录信息,记录谁运行的,运行的情况如何等。这也是为什么编程的时候必须要创建一个...
2018-04-17 17:06:47
464
转载 搭建Spark所遇过的坑
一.经验 1.Spark Streaming包含三种计算模式:nonstate .stateful .window2.kafka可通过配置文件使用自带的zookeeper集群3.Spark一切操作归根结底是对RDD的操作4.部署Spark任务,不用拷贝整个架包,只需拷贝被修改的文件,然后在目标服务器上编译打包。5.kafka的log.dirs不要设置成/tmp下的目录,貌似tmp...
2018-04-17 16:29:16
1079
原创 分享一个client模式spark程序
spark提交任务有client和cluster两种模式主要区别:是否将driver程序放在远程worker机器上执行。cluster模式由master挑选一个worker机器放置driver进程。client模式,也叫交互模式,任务提交后客户端一直保持连接,并即时获得运行的信息。cluster模式,也叫非交互模式,任务提交后由后台运行,关闭客户端不影响任务的执行,运行信息需要通过日志...
2018-04-07 16:26:17
755
转载 Apache Spark 内存管理详解
Spark 作为一个基于内存的分布式计算引擎,其内存管理模块在整个系统中扮演着非常重要的角色。理解 Spark 内存管理的基本原理,有助于更好地开发 Spark 应用程序和进行性能调优。本文旨在梳理出 Spark 内存管理的脉络,抛砖引玉,引出读者对这个话题的深入探讨。本文中阐述的原理基于 Spark 2.1 版本,阅读本文需要读者有一定的 Spark 和 Java 基础,了解 RDD、Shuff...
2018-04-03 17:54:13
478
原创 sofa snapshot上传到nexus服务器
mvn deploy:deploy-file -DgroupId=com.alibaba.sofa -DartifactId=sofa-common -Dversion=1.0.0-SNAPSHOT -Dpackaging=jar -Dfile=/Users/zhujl/test2/sofa-common-1.0.0-SNAPSHOT.jar -Durl=http://XXX.com/conten...
2018-03-29 12:03:08
1105
转载 数据库的隔离级别以及悲观锁和乐观锁详解
原文 http://blog.youkuaiyun.com/xiaokang123456kao/article/details/75268240一、事务四大属性 分别是原子性、一致性、隔离性、持久性。1、原子性(Atomicity) 原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响。2、一致性(Co...
2018-03-10 12:24:32
286
转载 数据库四种隔离级别
(零)没有并发控制 存在的问题:更新遗失。 解决办法就是下面的“可读取未确认”。(一)可读取未确认(Read uncommitted) 写事务阻止其他写事务,避免了更新遗失。但是没有阻止其他读事务。 存在的问题:脏读。即读取到不正确的数据,因为另一个事务可能还没提交最终数据,这个读事务就读取了中途的数据,这个数据可能是不正确的。 解决办法就是下面的“可读取确认”。(二)可读...
2018-03-10 12:11:09
349
转载 JVM原理讲解和调优
一、什么是JVM JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。 Java语言的一个非常重要的特点就是与平台的无关性。而使用Java虚拟机是实现这一特点的关键。一般的高级语言如果要在不同的平台上运行,至少需要编译成不同的目标代码。而引入Java语言...
2018-03-06 15:28:18
207
原创 一个完整的支付宝sofa框架demo
最近在研究《实现领域驱动设计》这本书时,发觉支付宝刚开源了一个领域驱动设计的框架Sofa。观察demo后发觉不够完整,于是补充了web及数据库功能供大家参考。快速开始1git clone <工程地址> 2编译环境要求JKD8+,maven3mvn clean package -DskipTests=true3导入idea或eclipse...
2018-02-26 18:34:49
19389
2
原创 ODPS表如何转javabean
codegen4odps一款自定义模版的ODPS表转java pojo的ORM代码生成工具快速入门clone代码 git clone git@github.com:YaoLin1/codegen4odps.git 编译在codegen4odps目录下执行编译命令 mvn clean package -DskipTests=true 修改odp...
2018-02-09 17:35:31
572
原创 一款自定义模版的代码生成工具
codegen一款自定义模版(freemarker)的代码生成工具快速入门clone代码 git clone git@github.com:YaoLin1/codegen.git 编译在codegen目录下执行编译命令 mvn clean package -DskipTests=true 修改jdbc配置,目前仅支持mysql““ 修改...
2018-02-09 15:57:55
4070
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人