![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
工作笔记
JavaUpgrade
认真写BUG!
展开
-
MAC中使用Dockerfile搭建centos+jdk8运行环境
目录环境目标步骤一、创建目录二、下载jdk三、创建Dockerfile文件四、创建镜像五、创建容器&运行容器六、检验结果七、总结八、运行环境监控环境mac pro环境Dockerfilejdk8centos7目标搭建一个可以运行的centos7+jdk8环境进入容器后,输入java -version,能正常显示版本号步骤一、创建目录/Users/lvhonglei/Documents/dockerfile/docker-jdk二、下载jdk下载jdk的tar版原创 2020-07-22 17:25:27 · 1066 阅读 · 0 评论 -
Docker实战-第一天
原创 2020-06-22 22:28:15 · 170 阅读 · 0 评论 -
maven打包deploy指定module
mvn deploy -pl moduleName -ammoduleName是需要替换成你项目中的子module的名字-pl, --projectsBuild specified reactor projects instead of all projects-am, --also-makeIf project list is specified, also build projects required by the list原创 2020-05-20 15:03:36 · 3456 阅读 · 0 评论 -
jdk8偷偷的占用了1G内存,你知道吗?
目录线上现象排查步骤相关实验(本地)复现现象优化方案一优化方案二方案三总结线上现象线上启动,莫名多占用1G系统内存。排查步骤dump内存,并分析,无异常通过总内存,jvm设置,确定是占用了堆外内存相关实验(本地)复现现象设置jvm参数-server -Xms128m -Xmx128m通过jconsole可以看到compressedClassSpace开辟了1G的内存空间,实际未使用那么多优化方案一设置元空间大小-server -Xms128m -Xmx1原创 2020-05-13 15:05:21 · 1865 阅读 · 0 评论 -
深入理解spring事务原理,手动实现事务提交和回滚
@[TOC] 目录NO1.框架自动提交事务与异常回滚NO2.控制框架的提交和事务回滚NO3.AOP+注解实现事务的提交和回滚NO4.spring事务源码解读原创 2020-03-03 23:49:17 · 9092 阅读 · 1 评论 -
springboot中aop切面失效,导致注解不起作用
文章目录Springboot中AOP失效,导致注解不起作用Springboot中AOP失效,导致注解不起作用今天在新建项目的时候,aop突然失效了,后来排查问题发现,是由于jar包没有引用全,在springboot使用aop需要倒入下面两个jar包<dependency> <groupId>org.aspectj</groupId> &...原创 2020-03-03 17:26:46 · 8302 阅读 · 1 评论 -
关于redis分布式锁的一些思考,离开场景谈架构就是耍流氓
Redis 分布式锁redis分布式锁 ,我想大家都经常使用。在面试的时候,也经常被问到。那么,你是否真的认真思考过,redis分布式锁的优势和劣势呢,今天,正好改造一个单点的定时任务系统,就记录一下自己的思考吧!单点应用要升级分布书应用同事为了快速和供应商对接,在短时间内实现了一个定时推送的系统,用的spring中的定时任务Scheduled,快速实现了,并且应用单点部署到生产服务器...原创 2020-03-02 20:44:20 · 233 阅读 · 0 评论 -
CookieUtil工具类
设置cookie /** * 设置cookie * @param response * @param name cookie名字 * @param value cookie值 * @param maxAge cookie生命周期 以秒为单位 */ public static void addCookie(HttpServletR...原创 2020-01-14 10:53:49 · 155 阅读 · 0 评论 -
幂等验证token,防止串改
目录需求思路解决方案总结需求在修改密码的时候,有两个步骤:第一步:验证用户名第二步:发送验证码由于是分开的两个步骤,就需要根据一定的规则,保证两个步骤的一致性,防止篡改,并且,需要防止“用户”跳过第一步,批量执行第二步。思路根据这个需求,有很多解决方案:简单版本:幂等token复杂版本:引入框架解决方案这么简单的需求,就不需要引用框架了,直接用幂等token就可以实...原创 2020-01-14 10:45:15 · 715 阅读 · 0 评论 -
线程池那点事
Executor ### 执行已提交 Runnable任务的对象,执行器;只有一个方法 void execute(Runnable command);ExecutorService ### extends Executor ### shutdown(),不接受新的任务,执行还没有执行完的任务 ### shutdownNow(),理解结束,不处理还没执行完的任务A...原创 2020-01-07 16:47:54 · 109 阅读 · 0 评论 -
String intern
/** * Returns a canonical representation for the string object. * <p> * A pool of strings, initially empty, is maintained privately by the * class {@code String}. * ...原创 2020-01-07 14:34:04 · 129 阅读 · 0 评论 -
guava cache 浅读(配置详解)
简单记录一下public class CacheTest { public static void main(String[] args){ class MyCacheLoader extends CacheLoader { @Override public Object load(Object key) throws...原创 2019-12-31 14:52:05 · 213 阅读 · 0 评论 -
eventbus源码解读(发布和订阅)
根据订阅类型分组注册 void register(Object listener) { //获取订阅的所有对象和方法 Multimap<Class<?>, Subscriber> listenerMethods = findAllSubscribers(listener); for (Map.Entry<Class<?>, Collec...原创 2019-12-30 16:59:34 · 131 阅读 · 0 评论 -
redis分布式锁setnx加上设置过期时间不是原子的,但是redis提供了原子操作的api
set中的原子操作set key value [expiration EX seconds|PX milliseconds] [NX|XX]set item-4 111 EX 20 NXsetNX,设置过期时间不是原子的setNx key valueset key value [expiration EX seconds|PX milliseconds]setNX ite...原创 2019-12-30 15:42:57 · 3398 阅读 · 0 评论 -
springboot拦截所有请求,WebMvcConfigurerAdapter,HandlerInterceptorAdapter
WebMvcConfigurerAdapter拦截所有请求 @Configuration public class CustMvcConfigurerAdapter extends WebMvcConfigurerAdapter { @Autowired private CustInterceptor custInterceptor; @Override ...原创 2019-12-30 14:57:08 · 4522 阅读 · 0 评论 -
java工具类,String转byte数组,byte数组转HexString, byte数组转base64,工具类DatatypeConverter
DatatypeConverterJava的工具类,发现我们重复造轮子,还造的不优雅,上面这个是Java8的工具类byte[] 转 HexString /** * byte[] 转 HexString * @param bytes * @return */ public static String printHexBinary(byt...原创 2019-12-27 11:13:00 · 1038 阅读 · 0 评论 -
日期获取Calendar,获取本周第一天,本月第一天,往前7天,往前30的日期
获取每个月的第一天 public static String getFirstDay(Date date){ SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); Calendar calendar = Calendar.getInstance(); cale...原创 2019-12-24 16:57:16 · 2982 阅读 · 0 评论 -
aes加密AES/ECB/PKCS7Padding||AES/ECB/PKCS5Padding
我的理解AES加密是对称加密,就需要加密和解密的使用相同的密钥。明文+密钥 = 密文密文+密钥 = 明文类常量 public static boolean initialized = false; public static final String ALGORITHM_256 = "AES/ECB/PKCS7Padding"; public static fina...原创 2019-12-24 16:38:16 · 2212 阅读 · 0 评论 -
java thread流水账
1.线程的种类?守护线程普通线程2.线程优先级优先级高的线程先执行,优先级低的后执行当前线程中创建了一个新线程,新线程继承当前线程的优先级当且仅当当前线程是守护线程的时候,新线程也是守护线程。3.创建线程的方式有几种?第一种:extends Thread第二种:implements Runnable4.线程有几种状态?NEWRUNNABLEBLOCKEDWAITING...原创 2019-09-05 16:44:46 · 160 阅读 · 0 评论 -
mac多线程下载axel
以前都是用wget下载的,发现有些软件下着很不爽,特别慢后来该用 axel就爽歪歪了安装brew install axel自动就安装完成下载axel https://services.gradle.org/distributions/gradle-4.4.1-bin.zip多线程链接下载,爽歪歪了...原创 2019-07-11 17:20:57 · 1914 阅读 · 0 评论 -
《工作日志》mac中home目录下不能创建文件
今天早上来单位,更新代码,然后,启动项目,发现项目不能启动,查看原因发现是同事把日志的存储目录修改了,然后,我就在 home目录下面建立对应的文件夹,本来以后会分分钟搞定的,可是报错了,查了网上,发现很多方案,对最新版本的mac都失效了。正解如下:关闭 /etc/auto_master下的/home重启电脑因为,网上说的其他方法都没有用重新建立文件夹以及文件成功了,完美解决...原创 2019-03-18 11:08:36 · 2876 阅读 · 0 评论 -
centos7安装mongodb
安装源wget mongdb-org-3.0.repo https://repo.mongodb.org/yum/redhat/mongodb-org-3.0.repo安装MongoDByum install mongdb-org -y原创 2019-08-29 14:43:33 · 136 阅读 · 0 评论 -
centos7安装zookeeper
安装源yum install https://archive.cloudera.com/cdh5/one-click-install/redhat/7/x86_64/cloudera-cdh-5-0.x86_64.rpm -y安装zookeeperyum install zookeeper -y启动zookeeper/usr/lib/zookeeper/bin/zkServer.sh...原创 2019-08-29 13:50:23 · 124 阅读 · 0 评论 -
centos7安装mysql
下载源wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm更新源rpm -ivh mysql-community-release-el7-5.noarch.rpm安装mysqlyum install mysql-server -y重启服务service mysqld restart重置密码m...原创 2019-08-29 10:24:40 · 96 阅读 · 0 评论 -
wrk HTTP 压力测试
目录wrk安装命令例子结果wrkGitHub安装安装命令Usage: wrk <options> <url> Options: -c, --connections <N> Connections to keep open -d, --duration <T> Duration of test -t, ...原创 2019-05-06 19:39:25 · 161 阅读 · 0 评论 -
Java支持的加密算法
public static void registerDefaultAlgorithms() {algorithmsMap.put(MessageDigestAlgorithm.ALGO_ID_DIGEST_NOT_RECOMMENDED_MD5,new Algorithm("", “MD5”, “MessageDigest”));algorithmsMap.put(MessageDi...原创 2019-04-22 16:10:12 · 479 阅读 · 0 评论 -
《工作笔记》springboot中dubbo的prc接口超时时间设置
今天在启动springboot的时候,项目启动一切正常,在调用dubbo的rpc接口的时候,发现有的接口会出现timeout异常,这个时候,我们可以调整调用段中dubbo的超时时间,在你项目application.properties中设置dubbo.consumer.time=1000发现超时异常,设置这个是治标不治本的解决办法,我们需要排查超时接口为什么超时,排查到真正慢的问题,并解决,...原创 2019-03-13 14:47:25 · 4002 阅读 · 0 评论 -
《工作笔记》java中的重写和重载
重载在同一个类中,方法名字相同,参数类型、参数个数、返回值不同,伪代码:public class Main { public void methodA(String a){ System.out.println(a); } public String methodA(){ return null; } public ...原创 2019-03-13 10:07:09 · 121 阅读 · 0 评论 -
《工作日志》Java常用类总结
文章目录CollectionlistArrayListVectorLinkedListSetHashSetLinkedHashSetTreeSetMapHashMapHashtableLinkedHashMapConcurrentHashMapTreeMapCollectionCollection,常被叫做集合,在Java面试的时候,是必须考的,今天就说说我印象中的Collection,集合...原创 2019-03-20 23:48:23 · 306 阅读 · 0 评论 -
《工作笔记》Java中的集合类arraylist和linkedlist
ArrayListArrayList的数据结构是Object数据当使用 List list = new ArrayList(); ,只是新建了一个空数组当使用 List list = new ArrayList(10); 会新建长度为10的Object数组在list是空数组的情况下,会取 DEFAULT_CAPACITY作为数组的长度,并创建数组 ,并向新数组中添加数据在list不是空...原创 2019-03-16 16:17:42 · 121 阅读 · 0 评论 -
《工作笔记》== 和 equals
==在基本类型比较中使用==,比较的是两个值是否相等在对象中使用==,比较的是两个对象的引用地址是否相等equalsObject中的equals方法,比较的是两个对象的引用地址是否相等,集成Object的都是一样的原理,但是,String除外,因为String重写了equals方法...原创 2019-03-15 09:47:25 · 96 阅读 · 0 评论 -
idea git 回退代码
目录idea选中要回退的记录选中hard,点击Reset推送代码pushidea选中要回退的记录选中hard,点击Reset推送代码push会提示冲突,点击 Merge就可以了,完美回退...原创 2019-05-07 19:22:08 · 8535 阅读 · 0 评论 -
centos7在vmware中安装网络解决不能联网的问题
修改ONBOOT=yes文件路径:/etc/sysconfig/network-scripts/ifcfg-xxx找到ifcfg开头的文件,并修改其中的ONBOOTONBOOT=yes重启网路服务service network restart升级yumyum upgrade安装网络工具yum install -y net-tools安装下载yum install...原创 2019-08-28 17:45:07 · 98 阅读 · 0 评论 -
MAC电脑中屏幕录制软件Camtasia[破解版]
官方网址:https://www.techsmith.com/此软件,可以免费试用30天,但是,试用的时候有官方水印,下面是mac破解版本,可以自动生成激活码TechSmith Camtasia_2019.0.2.Build.108462_xclient.info.dmg解压密码:xclient.info首先:安装Camtasia其次:打开另外一个安装包,里面有注册机,点开生成注册码...原创 2019-07-31 11:45:34 · 992 阅读 · 1 评论 -
mysql基础操作
MySqlMySql基础篇mysql安装#下载RPM文件wget http://repo.mysql.com/mysql-community-release-el6-5.noarch.rpm#执行RPM源文件rpm -ivh mysql-community-release-el6-5.noarch.rpm#执行安装文件yum install mysql-community-serv...原创 2019-07-30 13:59:15 · 123 阅读 · 0 评论 -
idea中的gradle项目环境问题
今天要看Spring源代码,于是下载了Spring的源代码,但是发现Spring现在用gradle做包依赖管理和构建了,于是乎,折腾了一天环境问题:安装指定版本的gradle在Spring源码项目中有个gradle-wrapper.properties文件,这个文件上有配置,配置了当前源码需要的gradle环境,并且会自动下载链接中的文件distributionBase=GRADLE_USE...原创 2019-07-11 23:17:41 · 525 阅读 · 0 评论 -
dubbo调用中provider返回RuntimeException
现在写代码的,都用分布式的,那么最常用的就是dubbo了,但是,今天在使用dubbo的时候遇到了一个问题。就是provider提供的接口中有异常验证,但是,在验证失败的时候,provider给返回了一个RuntimeException,这样导致我不能获取到对应的异常信息。出了这样的问题,先debug,跟进去,在dubbo的ExceptionFilter中找到了public Result in...原创 2019-07-11 13:46:01 · 508 阅读 · 0 评论 -
浅谈mybatis框架
配置文件全局配置文件1)Configuration1.1) Map<String,MappedStatement> mappedStatements = new StrictMap(“Mapped Statements collection”)1.2) Environment(环境)中包含TransactionFactory和DataSourceMapper配置文件1)na...原创 2019-07-01 10:00:01 · 134 阅读 · 0 评论 -
对于如果减少if和else的记录
首先,有个接口类,里面包含两个方法,一个是 是否能处理,另一个接口就是实际的处理逻辑写10个实现类,根据各自的业务逻辑然后,创建一个实现类的List,把所有实现类放进list中在需要使用的地方,遍历List,先调用 是否能处理方法,如果能处理,就处理,然后结束循环;如果,不能处理,继续循环这样就很好的解决类if,else...原创 2019-07-09 21:57:49 · 112 阅读 · 0 评论 -
springboot切面,打印详细参数名称、参数类型、参数值
不废话了,直接上代码/** * 打印详细的参数名称、参数类型、参数值 */@Component@Aspect@Slf4jpublic class LogServiceAspect { @Pointcut("execution(* com.upgrade.biz.service..*(..))") public void serviceLog(){}//// ...原创 2019-06-27 14:26:46 · 3539 阅读 · 1 评论