Java
热血蜗牛
这个作者很懒,什么都没留下…
展开
-
SprintBoot 使用 HandlerInterceptor + ThreadLocal 请求拦截获取用户信息
1、全局请求统一拦截,获取用户信息,进行用户校验。2、把获取到用户信息用ThreadLocal存储起来,实现线程内所有方法共享,不用把用户信息作为参数层层传递。3、在拦截器的afterCompletion中执行ThreadLocal的remove操作,避免内存泄露。原创 2021-08-03 15:59:07 · 451 阅读 · 0 评论 -
使用pdfbox把PDF转换成图片
使用pdfbox把pdf转换成图片原创 2021-07-05 15:12:59 · 260 阅读 · 0 评论 -
Java 生成二维码和条形码
谷歌 zxing 二维码、条形码的生成, 和 barcode4j 生成条形码,对比两种方式的特点原创 2021-05-26 16:38:50 · 213 阅读 · 0 评论 -
静态内部类实现单例模式
定义私有构造函数定义静态内部类定义获取实例的静态方法public class Singleton { private Singleton() {} private static class SingleInstance { private static final Singleton INSTANCE = new Singleton(); } public static Singleton getInstance() { retu.原创 2021-03-31 16:45:36 · 114 阅读 · 0 评论 -
HttpClient工具类
目录摘要相关依赖HttpClientUtil摘要特点:1、HttpClient4.5+2、静态内部类实现HttpClient工具类的单例模式3、定时清理空闲连接4、支持http和https5、支持重试6、使用 ResponseHandler 处理请求响应,自动关闭流7、使用泛型转换对应的对象返回相关依赖<dependency> <groupId>org.apache.commons</groupId> <artifactId&g原创 2021-03-29 09:52:35 · 189 阅读 · 0 评论 -
Stream 方式读文件 ( jdk1.8+ )
使用jdk1.8的新特色 stream 来读取文件,读取大文件的时候也可以节省内存,并且支持跳转多少行开始读取。原创 2021-03-23 09:20:10 · 929 阅读 · 0 评论 -
Elasticsearch multi search 探索
多个文本需要搜索,如果循环调用接口查询,网络耗时就是一笔大开销,所以使用 multi search 把请求合并统一发给 elasticsearch 去查询,节省下多个请求的网络开销。但是,发现 elasticsearch 执行耗时还是需要花费一秒多的耗时,因此尝试了几种途径去测试是否能优化 elasticsearch 执行批量查询的耗时。原创 2021-03-10 17:32:56 · 1638 阅读 · 0 评论 -
Junit 使用 CountDownLatch 多线程测试
Junit中使用线程池进行多线程测试时,这里使用CountDownLatch让任务执行完才结束进程。原创 2021-02-18 10:54:38 · 488 阅读 · 1 评论 -
SpringBoot全局统一异常处理
1、支持业务异常2、请求参数校验失败的异常捕获处理:字段参数、实体类参数(表单)、json实体类参数原创 2021-02-08 10:16:06 · 121 阅读 · 1 评论 -
HttpClient工具类
1、基于httpclient 4.5.122、采用内部静态类实现的单例模式3、支持超时时间内3次重试4、兼容http和htps请求5、支持ip地址的获取6、支持url请求参数的拼接原创 2021-02-07 17:45:54 · 138 阅读 · 1 评论 -
Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources
K8S 在 jenkins 构建的时候出现 Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources 错误,详细日志如下:[ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources (default-resources) on project manager-to原创 2021-02-07 16:12:26 · 3911 阅读 · 5 评论 -
java Graphics2D 获取当前系统实际支持特殊字符和中文的字体
使用Graphics2D时,经常需要处理字符串。本文从实际效果上去得到当前系统支持的字体,包括特殊字符的兼容。原创 2020-12-08 18:34:14 · 3020 阅读 · 1 评论 -
SpringBoot 实现自定义注解
AOP方式进行注解解析处理,并且以最简单的方式获取注解属性配置。原创 2020-10-20 10:27:34 · 228 阅读 · 0 评论 -
SpringBoot 使用 log4j2
SpringBoot默认采用的是logback,本文示范了从项目配置到log4j2配置的完整流程。原创 2020-09-03 17:39:47 · 12545 阅读 · 4 评论 -
Java 高并发下当前时间戳获取工具类(单线程维护)
在高并发场景下System.currentTimeMillis()并发问题严重,甚至比创建一个普通对象要耗时的多。本文的工具类解决了高并发时间戳获取的性能问题。原创 2020-09-02 11:16:55 · 866 阅读 · 0 评论 -
SpringBoot 上下文 Bean 工具类
该工具类,能实现上下文Bean的动态管理。原创 2020-09-02 11:07:07 · 272 阅读 · 0 评论 -
Class.forName的作用以及为什么要用它
将类的.class文件加载到jvm中之外,还会对类进行解释,执行类中的static块转载 2017-06-05 19:03:50 · 742 阅读 · 0 评论 -
Java 8 新特性
一、接口的变化二、注解的变化三、Lambda表达式四、方法引用原创 2017-06-01 16:48:28 · 255 阅读 · 0 评论 -
java 中三种常见内存溢出错误的处理方法
一、PermGen space二、Java heap space三、unable to create new native thread转载 2017-06-01 17:03:42 · 1291 阅读 · 0 评论 -
访问修饰符public、private、protected、以及不写(默认)时的区别
访问修饰符public、private、protected、以及不写(默认)时的区别原创 2017-06-08 10:48:14 · 4417 阅读 · 0 评论 -
synchronized 修饰的方法无法实现互斥的问题解决
模拟订票场景,总共10张票,但是有20个人想要购买,所以定义了一个订票管理类专门负责操作这10张票,当然,操作票的时候使用到了synchronized,另外定义了一个调用订票方法的线程类用于模拟想要买票的人,然后创建20个线程模拟20个人来订票。但是运行测试的结果却并没有成功模拟这10张票的售卖过程,原因和处理分析如下。原创 2017-06-07 18:52:39 · 1129 阅读 · 0 评论 -
Java 基本类型的默认值、存储需求(字节)、取值范围
Java 基本类型的默认值、存储需求(字节)、取值范围和例子原创 2017-06-09 16:37:05 · 396 阅读 · 0 评论 -
Java 一条进程的栈区、堆区、数据区和代码区在内存中的映射
内存 存储内容 栈区 主要用来存放局部变量, 传递参数, 存放函数的返回地址。.esp 始终指向栈顶, 栈中的数据越多, esp的值越小。 堆区 用于存放动态分配的对象, 当你使用 malloc和new 等进行分配时,所得到的空间就在堆中。动态分配得到的内存区域附带有分配信息, 所以你 能够 free和delete它们。 数据区 全局,静态和常量是分配在数据区中的,数据区原创 2017-06-09 17:08:43 · 525 阅读 · 0 评论 -
Java 自定义异常
自定义异常类的主要作用是区分异常发生的位置,当用户遇到异常时,根据异常名就可以知道哪里有异常,根据异常提示信息进行修改。自定义异常的步骤:一、创建自定义异常类二、在方法中通过 throw 关键字抛出异常对象三、使用 try-catch 语句捕获并处理异常四、使用 throws 关键字抛出给方法的调用者处理该异常原创 2017-06-13 14:43:33 · 494 阅读 · 0 评论 -
Java爬虫(二)--解析一个HTML字符串
使用Jsoup的静态方法 Jsoup.parse(String html) 把 html 字符串解析为一个新的 Documnet 文档,然后通过使用 Document 中的方法或者它父类 Element 和 Node 中的方法取得相关的数据。原创 2017-08-28 10:26:00 · 1587 阅读 · 0 评论 -
Java爬虫(一)--工程的构建
一、新建项目通过 http://start.spring.io/ 构建简单的 Spring Boot 工程。 二、把工程导入 eclipse 后,在 pom.xml 中添加相关的 maven 依赖1、Jsoup 依赖2、由于需要用到 http 请求访问对应的页面,所以需要引入 httpclient 依赖。<!-- Jsoup --><dependency> <groupId>o原创 2017-08-28 10:22:53 · 367 阅读 · 0 评论 -
Java爬虫(三)--数据抽取
1、当你有一个HTML文档要从中提取数据,并了解这个HTML文档的结构,应该怎么获取html数据?2、当你想使用类似于CSS或jQuery的语法来查找和操作元素,应该怎么做?3、当在解析获得一个Document实例对象,并查找到一些元素之后,你希望取得在这些元素中的数据,应该怎么做?原创 2017-08-28 17:14:18 · 2000 阅读 · 1 评论 -
Java爬虫(五)--数据修改
主要解决的问题:1、在你解析一个Document之后可能想修改其中的某些属性值,然后再保存到磁盘或都输出到前台页面。2、你需要一个元素中的HTML内容。3、你需要修改一个HTML文档中的文本内容。原创 2017-08-28 17:26:06 · 795 阅读 · 0 评论 -
Spring boot 2.4.2 多环境配置 logback
Spring boot多环境配置logbackspring boot通过profiles指定使用开发还是测试的环境,同时指定对应环境日志的配置:Spring boot多环境配置logback项目工程结构application.properties 文件的配置application-prod.properties 文件的配置application-test.properties ...原创 2018-08-31 17:17:01 · 2483 阅读 · 0 评论 -
ObjectMapper把Json转换为复杂的实体类
ObjectMapper把Json转换为复杂的实体类原创 2017-05-23 11:39:01 · 10169 阅读 · 1 评论