java
文章平均质量分 55
沸腾的可乐
Java工程师
展开
-
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 · 1577 阅读 · 0 评论 -
解决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 · 1603 阅读 · 0 评论 -
关于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 · 3464 阅读 · 0 评论 -
HttpClient-4.5.2 实战
介绍:HttpClientFactory 相当与一个存储<String name,HttpClient instance>的map,不同业务需要不同的HttpClient。HttpClientUtil是一个工具类,以execute模版方法为核心,其他都是快捷方式。剥离出HttpClient实例化和HttpClientUtil工具方案集是为了减少冗余代码,缺点是每个HttpClientU...原创 2020-01-16 13:52:13 · 554 阅读 · 0 评论 -
HttpClient-4.5.2官方教程完整翻译
HttpClient 4.5.2前言超文本传输协议(HTTP)可能是当今互联网上使用的最重要的协议。网络服务,支持网络的设备以及网络计算的发展继续扩大了HTTP协议在用户驱动的Web浏览器之外的作用,同时增加了需要HTTP支持的应用程序的数量。尽管java.net包提供了通过HTTP访问资源的基本功能,但它并不能提供许多应用程序所需的全部灵活性或功能。HttpClient试图通过提...转载 2020-01-08 19:00:48 · 1468 阅读 · 0 评论 -
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 · 1604 阅读 · 0 评论 -
如何重构1000行以上方法或类
有些方法蕴含逻辑复杂,如果顺序编程可能达到千行以上,非常不好维护,看了《重构》这本书的同学可能会说,我可以强制将每个for循环,每段逻辑按照70行每函数方式抽取出来。然而...即使每段都抽取为70行以内(实际5~30行最佳),抽出的代码,大多以私有方法形式放置在同一个类里面,导致类大小膨胀,类的维护难度增加,指标不治本。今天介绍一个解决此类问题的通用方法。它就是:拦截过滤器模式http:/...原创 2019-02-15 16:11:25 · 623 阅读 · 0 评论 -
Java并发:volatile内存可见性和指令重排
volatile两大作用1、保证内存可见性2、防止指令重排此外需注意volatile并不保证操作的原子性。(一)内存可见性1 概念JVM内存模型:主内存和线程独立的工作内存Java内存模型规定,对于多个线程共享的变量,存储在主内存当中,每个线程都有自己独立的工作内存(比如CPU的寄存器),线程只能访问自己的工作内存,不可以访问其它线程的工作内存。工作内存中保存了主内...转载 2019-02-17 11:53:42 · 201 阅读 · 0 评论 -
java 中的锁 -- 偏向锁、轻量级锁、自旋锁、重量级锁
之前做过一个测试,详情见这篇文章《多线程 +1操作的几种实现方式,及效率对比》,当时对这个测试结果很疑惑,反复执行过多次,发现结果是一样的: 1. 单线程下synchronized效率最高(当时感觉它的效率应该是最差才对); 2. AtomicInteger效率最不稳定,不同并发情况下表现不一样:短时间低并发下,效率比synchronized高,有时甚至比LongAdder还高出一点,但是高并...转载 2019-02-17 15:55:44 · 147 阅读 · 0 评论 -
apache commons工具类简介
一、Commons BeanUtils说明:针对Bean的一个工具集。由于Bean往往是有一堆get和set组成,所以BeanUtils也是在此基础上进行一些包装。二、Commons CLI说明:这是一个处理命令的工具。比如main方法输入的string[]需要解析。你可以预先定义好参数的规则,然后就可以调用CLI来解析。三、Commons Codec说明:这个工具是用来编码和解码...转载 2019-04-23 17:04:12 · 493 阅读 · 0 评论 -
POI若干疑难操作
一、POI控制某列只显示文本解决问题:身份证号在输入模版文件中显示为科学计数法XSSFCellStyle textColumnStyle = workbook.createCellStyle();XSSFDataFormat dataFormat = workbook.createDataFormat();textColumnStyle.setDataFormat(dataFormat....原创 2019-04-29 17:27:22 · 348 阅读 · 0 评论 -
为什么开发过程中debug模式和run模式启动Java应用耗时差距越来越大
检查下是不是设置了过多的断点,如果有清理下。run模式启动耗时 =debug模式启动耗时 +各个断点总耗时随着开发活动的进行,设置的断点越来越多,很多时候记得设置,也记得disable断点,就是没删除,反正很多时候也不会进断点,这就容易让人麻痹大意,然后每次debug启动越来越慢。。。正确的姿势是:debug启动慢了,就去打开Breakpoints窗口清理下。没事清理掉没用的断...原创 2019-06-14 17:21:09 · 2200 阅读 · 0 评论 -
菜单树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 · 427 阅读 · 0 评论 -
扩展ThreadPoolExecutor实现线程池监控
摘要:背景在开发中,我们经常要使用Executors类创建线程池来执行大量的任务,使用线程池的并发特性提高系统的吞吐量。但是,线程池使用不当也会使服务器资源枯竭,导致异常情况的发生,比如固定线程池的阻塞队列任务数量过多、缓存线程池创建的线程过多导致内存溢出、系统假死等问题。因此,我们需要一种简单的监控方案来监控线程池的使用情况,比如完成任务数量、未完成任务数量、线程大小等信息。Executo...转载 2018-12-06 17:07:26 · 3887 阅读 · 1 评论 -
分享一个client模式spark程序
spark提交任务有client和cluster两种模式主要区别:是否将driver程序放在远程worker机器上执行。cluster模式由master挑选一个worker机器放置driver进程。client模式,也叫交互模式,任务提交后客户端一直保持连接,并即时获得运行的信息。cluster模式,也叫非交互模式,任务提交后由后台运行,关闭客户端不影响任务的执行,运行信息需要通过日志...原创 2018-04-07 16:26:17 · 727 阅读 · 0 评论 -
JVM原理讲解和调优
一、什么是JVM JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。 Java语言的一个非常重要的特点就是与平台的无关性。而使用Java虚拟机是实现这一特点的关键。一般的高级语言如果要在不同的平台上运行,至少需要编译成不同的目标代码。而引入Java语言...转载 2018-03-06 15:28:18 · 186 阅读 · 0 评论 -
Guava学习笔记:Google Guava 类库简介
Guava 是一个 Google 的基于java1.6的类库集合的扩展项目,包括 collections, caching, primitives support, concurrency libraries, common annotations, string processing, I/O, 等等. 这些高质量的 API 可以使你的JAVa代码更加优雅,更加简洁,让你工作更加轻松愉悦。下面我转载 2016-01-06 11:38:47 · 471 阅读 · 0 评论 -
java如何提取url里的域名
java里给定一个url字符串如何解析呢?方法一:正则字符串解析,第一印象是用正则,网上有很多正则表达式方法二:java标准类库java.net.URL url = new java.net.URL("http://blog.csdn.net/zhujianlin1990");String host = url.getHost();// 获取主机名 Sy原创 2016-06-04 21:02:37 · 42348 阅读 · 2 评论 -
常用坐标系转换工具(Java实现)
地球、火星、百度、搜狗坐标系转换原创 2017-02-28 15:45:35 · 10934 阅读 · 0 评论 -
dubbo注册到zookeeper很慢5秒一个
前段时间新买的Mac环境都重新整了个遍(mac 10.12+idea+jetty9),最后发觉一样的代码,一样的配置,但是服务启动时间,从原来的几十秒,飙升到了3分半钟。查看控制台日志,发现每个dubbo服务注册到zookeeper都需要5秒。 怀疑zk问题,换了好几个版本,也试用连接正常的远程zk,都没结果。网上搜索居然有类似问题,悬而未解(详见:http://ask.csdn.net/questions/353225)。缓慢开发1个多月后,有一天想起来dubbo代码可以下载,可以debug,于是居然发原创 2017-03-07 11:24:02 · 12138 阅读 · 6 评论 -
RocketMQ集群压测实战一:扩展JMeter
测试工具:最新版JMeterRocketMQ:1m单点或2m-2s-async集群 版本apache-rocketmq 4.0.0-incubating JDK:Java7+纯粹生产者TPS压测public class Producter extends AbstractJavaSamplerClient{ public Samp原创 2017-07-03 11:41:32 · 5621 阅读 · 2 评论 -
java虚拟机dump分析入门
1、在目标主机生成dump文件ssh svr_message #ssh到目标主机ps aux|grep java #查找目标java进程pidsudo -u admin jmap -dump:format=b,file=/home/admin/zhujl.dump 15065 #生成目标dump文件,正常花费若干秒到若干分钟2、压缩dump文件一般生产的d...原创 2017-07-05 16:56:22 · 1055 阅读 · 0 评论 -
Spring AOP 实现原理
转自http://blog.csdn.net/moreevan/article/details/11977115/什么是AOPAOP(Aspect-OrientedProgramming,面向方面编程),可以说是OOP(Object-Oriented Programing,面向对象编程)的补充和完善。OOP引入封装、继承和多态性等概念来建立一种对象层次结构,用以模拟公共行为的一转载 2017-08-10 11:59:26 · 257 阅读 · 0 评论 -
java -verbose命令
java -verbose[:class|gc|jni] 在输出设备上显示虚拟机运行信息。1.java -verbose:class在程序运行的时候究竟会有多少类被加载呢,一个简单程序会加载上百个类的!你可以用verbose:class来监视,在命令行输入java -verbose:class XXX (XXX为程序名)你会在控制台看到加载的类的情况。转载 2017-08-11 17:33:31 · 5633 阅读 · 0 评论 -
如何配置idea使一个窗口包含多个工程
你是否在烦恼为什么idea不能像eclipse那样,一个窗口含任意个工程?那么看这篇文章就对了。只要轻松的几行配置即可解决问题。 创建一个目录 mutil_projects将hello-server,hello-web,helloservice 等工程clone到该目录下新建一个pom.xml文件,将三个工程作为module加入这个工程<project xmlns="原创 2017-07-05 16:47:15 · 6793 阅读 · 8 评论 -
mac如何使用infer进行maven项目源码静态分析
>安装infer brew install infer>查看版本号infer --versionInfer version v0.13.0Copyright 2009 - present Facebook. All Rights Reserved> cd hellospark //进入你的maven工程根目录> infer -- mvn -DskipTests=原创 2018-01-15 11:14:03 · 574 阅读 · 0 评论 -
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 · 547 阅读 · 0 评论 -
HashMap的实现原理
HashMap概述 HashMap是基于哈希表的Map接口的非同步实现。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。 HashMap的数据结构 在Java编程语言中,最基本的结构就是两种,一个是数组,另外一个是模拟指针(引用),所有的数据结构都可以用这两个基本结构来构造的,HashMap也不例外。H转载 2015-07-17 17:52:09 · 328 阅读 · 0 评论