自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

原创 Linux上传文件和下载文件命令

安装首先,你的服务器上得安装上传下载工具包rz及sz,如果没有的话,会出现以下提示:那么你接下来就需要安装一下了,运行一下命令即可:yum install -y lrzsz上传:输入命令:rz会弹出对话框,选择你要上传的文件,选择打开就上传到Linux主机。上传的文件在当前命令行的目录下。可以看到,已经上传成功啦:下载输入命令:...

2019-12-27 10:15:21 490

原创 git 中文开发手册

git是我们开发过程中必不可少的一个工具,虽然我们每天使用,但是对于它的一些功能却知之甚少,因为我们平时只是使用它的浅显功能。但是,如果我们遇到一些问题的话,我们却不知从何下手,所以这个 git开发手册就显得尤为重要啦,希望能帮到大家。git 中文开发手册...

2019-12-26 11:22:27 80

原创 Java 注解@Annotation 与 自定义注解

1.注解的由来在引入注解之前,在不同类型的应用程序使用XML作为标准的代码配置机制,程序员们描述其代码的形式尚未标准化,每个人的做法各异:transient关键字、注释、接口等,代码和XML的解耦以及未来对这种解耦应用的维护并不低廉,这显然不是一种优雅的方式,随之而来的JDK5.0引入一种崭新的记录元数据的形式——注解被引入到Java中。 它的作用是修饰编程元素。什么是编程元素呢?例如:包、...

2019-12-22 11:54:55 45

原创 Java策略模式实战

背景介绍在上篇文章中:项目中的if else 太多了,要怎么重构?Java工厂模式实战讲到了Java 工厂模式的使用,其中利用了反射来实例化对象,但是在优化的过程中发现,反射的效率实在是不敢恭维。问题分析与解决方案工厂模式的核心就是创建对象,而对于我们的业务场景来说,重要的是在不通的行为中如何作出选择,而策略模式正好是一种行为模式,注重的是对行为的封装,解决的是策略的切换与扩展,更简...

2019-12-21 23:09:12 107

原创 并发,并行与串行的区别

并发(concurrency)和并行(parallellism)是:并行是指两个或者多个事件在同一时刻发生;而并发是指两个或多个事件在同一时间间隔发生。并发的关键是你有处理多个任务的能力,不一定要同时。并行的关键是你有同时处理多个任务的能力。所以我认为它们最关键的点就是:是否是『同时』。并发就是同步的串行,一个任务执行完执行下一个任务;并行,在用同一个时刻执行多个线程;...

2019-12-20 18:03:54 522

原创 Linux 用 sz 下载文件报-bash: sz: command not found

在Linux下使用 sz 命令下载文件的时候,出现 -bash: sz: command not found 报错,这是因为Linux系统中没有安装 lrzsz这个包,就会报rz、sz命令找不到,安装即可解决。yum install lrzsz...

2019-12-17 16:23:46 448

原创 Mac使用小技巧 - 触发角

最近发现了一个Mac电脑的使用小技巧,触发角,只要将鼠标指针滑到屏幕四个角的任意一角,即可实现锁屏功能,或者是你设置的其他功能,简直是神器呀!接下来我们来看一看这个神器的操作:第一步打开系统偏好设置,在搜索框中输入 触发角 ,按回车,即可看到如下界面:点击右下方的触发角:然后你就可以随心所欲的设置啦是不是很方便?...

2019-12-17 11:27:44 1078

原创 IllegalStateException: Cannot find current proxy: Set 'exposeProxy' property on Advised to 'true'

在使用 @Async 注解实现异步线程的时候,为了能够在同类中调用,使用AopContext获取类的实例,结果报错:调用如下:@GetMapping("test03") public void testAsync03() throws InterruptedException { log.info("=====03主线程执行start: " + Thread.cu...

2019-12-16 16:58:05 1866

原创 线程池的拒绝策略

在没有分析线程池原理之前先来分析下为什么有任务拒绝的情况发生。这里先假设一个前提:线程池有一个任务队列,用于缓存所有待处理的任务,正在处理的任务将从任务队列中移除。因此在任务队列长度有限的情况下就会出现新任务的拒绝处理问题,需要有一种策略来处理应该加入任务队列却因为队列已满无法加入的情况。另外在线程池关闭的时候也需要对任务加入队列操作进行额外的协调处理。RejectedExecutionH...

2019-12-16 16:44:34 64

原创 线程的几种状态。

谈到线程池就会想到池化技术,其中最核心的思想就是把宝贵的资源放到一个池子中;每次使用都从里面获取,用完之后又放回池子供其他人使用,有点吃大锅饭的意思。那么线程池有哪几种状态呢?在这里做一下总结:1. 新建( new ):新创建了一个线程对象。2. 可运行( runnable ):线程对象创建后,其他线程(比如 main 线程)调用了该对象 的 start()方法。该状态的...

2019-12-16 15:23:26 46

原创 Java UUID的list 遍历删除的正确方式

Iterator<UUID> iterator = locationInfoIdList.iterator(); while (iterator.hasNext()) { if (locationInfoIds.stream().noneMatch(locationId -> locationId.equals(itera...

2019-12-13 15:55:20 94

原创 常见容错机制:failover、failfast、failback、failsafe

1.failover:失效转移Fail-Over的含义为“失效转移”,是一种备份操作模式,当主要组件异常时,其功能转移到备份组件。其要点在于有主有备,且主故障时备可启用,并设置为主。如Mysql的双Master模式,当正在使用的Master出现故障时,可以拿备Master做主使用2.failfast:快速失败从字面含义看就是“快速失败”,尽可能的发现系统中的错误,使系统能够按照事先设定好的...

2019-12-13 15:04:47 85

转载 分布式 常见的容错机制

常见容错机制:failover ,failsafe,failfase ,failback,forking,来源于阿里的定义。Failover 失败自动切换当出现失败,重试其它服务器,通常用于读操作(推荐使用)。 重试会带来更长延迟。Failfast 快速失败只发起一次调用,失败立即报错,通常用于非幂等性的写操作。 如果有机器正在重启,可能会出现调用失败 。Failsafe 失败安...

2019-12-13 15:00:17 148

原创 利用BeanMap进行 对象与Map的相互转换

Javabean与map的转换有很多种方式,比如:1、通过ObjectMapper先将bean转换为json,再将json转换为map,但是这种方法比较绕,且效率很低,经测试,循环转换10000个bean,就需要12秒!!!不推荐使用 2、通过Java反射,获取bean类的属性和值,再转换到map对应的键值对中,这种方法次之,但稍微有点麻烦 3、通过net.sf.cglib.beans.B...

2019-12-13 14:50:58 73

原创 RestTemplate访问https遇到SSL证书验证错误

今天,遇到了一个SSL证书认证的问题,纠结了好久才解决,学到了很多东西,记录下来,分享给大家。首先说一下大概的背景,我们的项目对接了第三方接口,需要向对方发送https请求。那么问题来了,https请求时需要通过SSL证书认证的,今天流程突然走不下去了,看日志发现是SSL认证的问题:在网上找资料,解决问题有两个思路:通过相关配置,跳过SSL证书验证,完成请求。 下载证书,将证书...

2019-12-13 14:48:54 1239

原创 idea如何设置控制台输出日志是否自动换行

开发中我们通常会传输json格式的数据,然后打印在控制台Console,但json格式数据一多,则需要则控制台下放拖拽才能查看,且这样不方便阅读,所以推荐使用以下设置。Windowsidea设置如下(Ctrl+Alt+S)Setting->Editor->General->Console,Macidea设置如下(command+,)Setting->Edito...

2019-12-13 14:17:33 678

原创 @Async注解的使用 及@Async 注解失效问题的分析与解决方案

在开发过程中,我们会遇到很多使用线程池的业务场景,例如异步短信通知、异步记录操作日志。大多数使用线程池的场景,就是会将一些可以进行异步操作的业务放在线程池中去完成。例如在生成订单的时候给用户发送短信,生成订单的结果不应该被发送短信的成功与否所左右,也就是说生成订单这个主操作是不依赖于发送短信这个操作,所以我们就可以把发送短信这个操作置为异步操作。那么本文就是来看看Spring中提供的...

2019-12-09 22:51:21 334

原创 linux如何批量删除文件

Linux如何批量删除相同类型或者名称相似的文件:命令:删除文件名以jpg或png结尾的文件:rm -rf *@(jpg|png)删除文件名不以jpg结尾的文件: rm -rf !(*jpg) 这里要特殊注意,操作要在文件所在的目录下操作才有用: 不在一个目录下操作会发现是没用用的进入目标路径下操作就OK了:...

2019-12-09 14:34:01 437

原创 项目中的if else 太多了,要怎么重构?工厂模式实战

项目背景最近在做一个物流配送的项目,对接了很多的快递公司,其中有一部分的业务逻辑是这样的: if (carrierName.equals("eleme")) { //向 eleme 下单 } else if (carrierName.equals("sfsQiao")) { //向 sfsQiao 下单 ...

2019-12-02 21:58:15 673

空空如也

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除