#Code

最近准备和朋友搞一个小项目,需要用到Jenkins来做部署,这里记录一个Jenkins的配置。Jenkins官方文档 由于方便起见,这里我使用War包下载。官网的war包下载比较慢,这里使用清华的源...

在业务代码中,经常会写策略调度器,还有自动注入策略的方法。极大的降低了开发的效率。所以用Java的反射功能来实现一个策略模式的工具类。 代码 定义一个策略接口。 package cn.gloduc...

在实际开发中,我们可能会需要使用到注解来给我们的方法注入一些参数值,比如从token中获取某些参数然后注入到controller中的方法中。但是由于SpringAOP无法支持对参数上的注解进行拦截所...

在Java中为我们提供了观察者模式的相关接口和抽象Observable和Observer分别对应了观察者模式的观察者和消费者。但是这两个类在Java9的时候打上了@Deprecated表明这两个接口已...

Graalvm通过静态分析提前编译来为Java应用程序构建高度优化的本机可执行文件,这就需要在编译时就知道所有的程序类型,而java中的反射、动态代理等功能,在编译时不确定具体的类型,所以在使用Gr...

AbstractQueuedSynchronizer 注意:本文根据JDK8进行分析,后续版本的实现有一定变化。 队列同步器使用了CLH锁(基于单向链表的自旋锁,申请加锁的线程通过前驱节点的变量进行...

图解 解决方式 Spring使用了三级缓存 + 提前暴露对象的方式来解决循环依赖的问题。 相关的重要属性:位于DefaultSingletonBeanRegistry类中 Spring内部维护...

Bean的生命周期 实例化 属性赋值 初始化 销毁 //AbstractAutowireCapableBeanFactory.class protected Object doCreateBean...

待解决问题 没有解决无效数据清理的问题,会出现OOM(有时间更新),推荐使用Redis版本 解决方案: 将缓存设置成LRU(可以直接把ConcurrentSkipListMap改为Spring提...

HashMap 基本 HashMap基本特性: HashMap的Key和Value均允许为null HashMap的存取是没有顺序的 JDK8的底层是数组 + 链表 + 红黑树,JDK7...