自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 问答 (1)
  • 收藏
  • 关注

原创 redis分布式锁

两种实现方式:redisson、lua脚本具体用法见项目中的readmehttps://github.com/yanyan20769/lock

2019-11-04 14:39:30 187

原创 自定义注解支持spring EL表达式

1 新增三个注解支持类,其实是拷贝出来的spring的类package per.yan.ding.util.el;import org.aspectj.lang.JoinPoint;import org.aspectj.lang.reflect.MethodSignature;import org.springframework.cache.interceptor.Simple...

2019-06-16 19:22:57 7973 1

原创 redis分布式限流

1 新增限流注解 RateLimiter/** * redis限流注解 * @author gaoyan * @date 2019/2/21 10:05 */@Documented@Retention(RetentionPolicy.RUNTIME)@Target(ElementType.METHOD)public @interface RateLimiter {...

2019-06-16 19:14:23 349

原创 钉钉消息通知服务

https://github.com/yanyan20769/ding-talk

2019-02-27 16:23:13 1086

原创 异步方法上传MultipartFile问题

前端上传Excel文件,经过读取-校验-保存后使用了异步方法将原始文件上传到阿里云,但是错误日志偶尔会出现这个错误定位代码中41行debug更进源码可以看到最后调用一个native方法,入参是该multipartFile在本地文件目录中创建的一个临时文件的全路径+名称由于是偶尔出现,所以猜想会不会是由于主线程结束,导致本地目录的临时文件被清除,所以异步方法中的getInp...

2018-12-05 18:34:06 2958

原创 springboot国际化

https://github.com/yanyan20769/springboot-i18n

2018-11-23 10:37:36 176

原创 springboot发送邮件

https://github.com/yanyan20769/email

2018-11-23 10:36:52 162

原创 java实现生产者-消费者模式

阻塞队列使用自己写的,前篇文章自己实现阻塞队列里有介绍,现在代码贴过来阻塞队列实现方式一 使用synchronizedimport java.util.ArrayList;import java.util.List;public class SelfQueue<T> { //默认阻塞队列容量 private static int DEFAULT_CAPA...

2018-08-20 15:14:24 443

原创 自己实现阻塞队列

内部使用ArrayList作为存储容器,提供两个构造方法,可以自己指定队列容量。一 使用synchronized锁实现import java.util.ArrayList;import java.util.List;public class SelfQueue<T> { //默认阻塞队列容量 private static int DEFAULT_CAPA...

2018-08-20 15:05:45 619

原创 两个队列实现栈

基本思想:一个队列用于存储所有元素,另一个空闲,入队元素进入存储队列,出队时将存储队列的元素依次放入空闲队列,剩下最后一个时弹出,然后交换指针用于下次入栈及出栈。public class Stack<T> { private Queue<T> storeQueue; private Queue<T> emptyQueue; pu...

2018-08-19 10:23:40 155

原创 两个栈实现队列

基本思想:一个栈存放入队数据,另一个栈存放出队数据。出队时,出队栈为空的情况下,就一次性将入队栈的数据拿过来;出队栈不为空则pop出栈顶数据。public class Queue<T> { private Stack<T> inStack; private Stack<T> outStack; public void add(T...

2018-08-18 13:45:05 150

原创 用ArrayList实现简单队列和栈

队列特点:先进先出import java.util.ArrayList;public class Queue<T> { private ArrayList<T> arrayList; /** * 入队 */ public void add(T t) { if (arrayList == null) ...

2018-08-18 11:43:41 6196

原创 一次错误的美化代码

前段时间,开发的时候遇到一个问题,虽然很快解决了,但是里面包含的原理以及内在原因一直没弄清楚,后来了解了JVM相关知识才真正弄清楚。有一个方法doSomething(),该方法从HttpServletRequest中获取参数组装成查询的入参对象Student,然后对student进行默认属性的处理,处理完成过后用该对象做参数做查询操作代码片段1void doSomething(Htt...

2018-08-15 11:22:57 257

原创 静态块真的是类加载的时候执行么?

最近在读java深度历险这本书,书中第二章有个关于静态块执行时机的讨论,这一改我以前的认知啊。很多博客或是书籍都认为静态块是类加载的时候执行的,真相真的是这样么?我们先来看两个例子:example 1: public class Test { public static void main(String[] args) throws Exception { ...

2018-08-09 11:02:14 1394

转载 intellij idea关于maven依赖的小技巧

https://blog.csdn.net/qq_27093465/article/details/69226949

2018-07-26 19:55:39 234

转载 intellij idea 收费版本破解

安装完成,打开,进入License server address 中输入 http://idea.java.sx/,点击Activate。现在http://idea.java.sx/已经不可用,可以使用http://idea.toocruel.net 。=================================================================...

2018-07-26 13:38:38 8473

原创 intellij idea 配置gitlab ssh key

1 安装git,登录官网https://www.git-scm.com/download/ ,选择相应系统版本,下载后安装好。公司网慢的可以用第三方的软件管家下载。2 打开git bash,不需要进入任何目录,直接输入 ssh-keygen -t rsa -C 'xxx@xxx.com','xxx@xxx.com'为gitlab上的登录账户。一路回车。 3 打开生成的密钥文件,目录...

2018-07-25 16:35:47 55105 14

空空如也

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

TA关注的人

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