jedisLock—redis分布式锁实现

一、使用分布式锁要满足的几个条件:系统是一个分布式系统(关键是分布式,单机的可以使用ReentrantLock或者synchronized代码块来实现)共享资源(各个系统访问同一个资源,资源的载体可能是传统关系型数据库或者NoSQL)同步访问(即有很多个进程同事访问同一个共享资源。没有同步访问,谁管你资源竞争不竞争)二、应用的场景例子  管理后台的部署架构(多台tomcat服务器+redis【多台... …… 阅读全文

静态代理 VS 动态代理

本篇博客的由来,之前我们学习大话设计,就了解了代理模式,但为什么还要说呢?原因:1.通过DRP这个项目,了解到了动态代理,认识到我们之前一直使用的都是静态代理,那么动态代理又有什么好处呢?它们二者的区别是什么呢?2.通过学习动态代理了解到动态代理是一种符合AOP设计思想的技术,那么什么又是AOP?下面是我对它们的理解!代理Proxy:Proxy代理模式是一种结构型设计模式,主要解决的问题是:在直接... …… 阅读全文

记一次内存溢出的分析经历——thrift带给我的痛orz

1.此篇文章简介说在前面的话朋友,你经历过部署好的服务突然内存溢出吗?你经历过没有看过Java虚拟机,来解决内存溢出的痛苦吗?你经历过一个BUG,百思不得其解,头发一根一根脱落的烦恼吗?我知道,你有过!但是我还是要来说说我的故事..................背景:有一个项目做一个系统,分客户端和服务端,客户端用c++写的,用来收集信息然后传给服务端(客户端的数量还是比较多的,正常的有几千个)... …… 阅读全文

java 避免出现NullPointerException(空指针)的方法总结

java 避免出现NullPointerException(空指针)的方法总结Java应用中抛出的空指针异常是解决空指针的最好方式,也是写出能顺利工作的健壮程序的关键。俗话说“预防胜于治疗”,对于这么令人讨厌的空指针异常,这句话也是成立的。值得庆幸的是运用一些防御性的编码技巧,跟踪应用中多个部分之间的联系,你可以将Java中的空指针异常控制在一个很好的水平上。顺便说一句,这是Javarevisit... …… 阅读全文

Java自定义注解实现和企业级应用

现在Java越来越倾向于少配置多注解的模式了,今天给大家介绍一下在Java中如何实现自定义注解。然后再教大家怎么利用这个自定义注解来记录接口请求的日志信息。下面我们首先来看一下自定义注解的实现过程,我以我们项目中的自定义注解举例子,我们先看一下下面这段的代码:/** * Created by wangjun on 2017/10/12. * 自定义注解 */@Target({ElementType... …… 阅读全文

@Override is not allowed when implementing interface method

IDEA导入项目后出现@Override错误,虽然不影响编译,但是看起来不和谐。对于这个问题,网上有两种解决方案:1、File-->Project Structure...-->Module-->选中模型-->Language Level,选择6(网上这种方案较多)2、pom文件中配置maven-compiler-plugin(个人认为这种方案更正确,可以避免每个人都要按照... …… 阅读全文