![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
iecy
生气是示弱,固执是自卑
展开
-
CDH6.x解决log4j2漏洞问题
背景2021年11月,阿里向Apache官方报告了Apache Log4j2远程代码执行漏洞,某些功能存在递归解析功能,攻击者可直接构造恶意请求,触发远程代码执行漏洞。对于我们自己管理的springboot项目,可以通过升级log4j2的版本来解决。但是对于离线CHD集群,升级就很难实现。官方给出的缓解措施是删除相关jar的class文件。官方修复脚本的github地址https://github.com/cloudera/cloudera-scripts-for-log4j具体操作...原创 2021-12-29 17:02:24 · 2964 阅读 · 1 评论 -
一个简单利用redis.incr次数检查工具
应用场景在用java写交互逻辑时,经常遇到一些需要在给定时间内做次数检查的逻辑,如:短信验证次;修改登录/交易密码次数;实名认证次数等等。通常三方服务是有调用成本的,出于这种考虑也应加上校验限制。redis incr命令的特性正好符合了需求,springboot开发环境下工具类如下:package com.example.utils;import org.joda.time.DateTime;import org.joda.time.Duration;import org.springframe原创 2021-06-07 16:11:54 · 480 阅读 · 0 评论 -
使用Volatile实现线程交替打印一个字符串
之前使用锁加wait和notify的方式来实现两个线程交替打印一个字符串,也可以考虑使用Volatile关键来实现线程间的通信,代码如下: private volatile boolean flag4Volatile = true; private int index = 0; @Test public void testVolatile() throws InterruptedException { var str = "我是个大帅逼";原创 2020-08-18 10:34:02 · 333 阅读 · 0 评论 -
Java实现两个线程交替打印一个字符串
Java实现两个线程交替打印一个字符串面试时经常会遇到这类问题,可以用一些小例子来熟悉多线程的使用以及Object的wait和notify等相关知识。回到这题:首先我们需要一个字符串,可以拆分成数组或者List其次我们需要一把锁,用于控制字符串的有序打印最后我们还需要一个指针,用于线程间通信(通知打印到哪里了)代码如下:线程a打印字符串方法:public static void printStringA(String[] strs) throws InterruptedException原创 2020-08-17 11:27:30 · 1721 阅读 · 0 评论 -
一个简单的可单独配置超时时间和重试次数的RestTemplate工具方法
RestTemplate reTry 项目中有用到RestTemplate,之前使用的是HttpClient,用起来比较繁琐。切换为RestTemplate后写了一个简单的工具方法。因了解到RestTemplate需要使用SimpleClientHttpRequestFactory 统一配置超时和重试参数,由于项目中不同外部接口的限制不一样,所以需要单独配置这些参数。代码如下:package com.example.uti原创 2020-08-06 15:40:59 · 3785 阅读 · 3 评论 -
python和java中的ThreadPoolExecutor简单使用对比
python和java中的ThreadPoolExecutor简单使用对比pythonjavapythonjava原创 2020-07-27 17:14:27 · 165 阅读 · 0 评论 -
springboot项目里,static方法里使用非static方法
springboot项目里,static方法里使用非static方法thisJava里this指代的是当前的对象,而static方法是类方法,是先于任何的实例存在。因此static方法里是不能使用this的方法。thiz...原创 2020-04-09 09:56:37 · 671 阅读 · 0 评论