摘要: 概述 我们知道,在Spring boot中可以通过xml或者@ImportResource 来引入自己的配置文件,但是这里有个限制,必须是本地,而且格式只能是 properties(或者 yaml)。那么,如果我们有远程配置,如何把他引入进来来呢。如果有兴趣可以看另外一篇博客,介绍了spring c阅读全文
posted @ 2017-10-17 18:45 atheva 阅读(204) 评论(0) 编辑
摘要: 概述 Druid是阿里巴巴开源的一个数据库连接池 源码地址。下面简单分析一下连接池是怎么实现的 怎么开始阅读 如果使用过Druid连接池的都只要在Spring配置中配置jdbc的时候配置Driver是使用的DruidDataSource。因此,在读源码的时候也可以从这个类入口。 Datasouce 阅读全文
posted @ 2017-10-12 19:56 atheva 阅读(236) 评论(0) 编辑
摘要: 文章推荐 jdk9都已经出来了,虽然很多项目都已经使用jdk8,但是很少会用到jdk8中的新特性。本人经常用的到也就是使用Stream,Lambda,但也仅仅是使用,基本不知道什么Function,Consumer东西。Optional和CompletableFuture就更不清楚了。下面整理了一些阅读全文
posted @ 2017-10-02 15:05 atheva 阅读(30) 评论(0) 编辑
摘要: 概述 垃圾收集器是jvm实现内存回收的具体实现。本次分享要介绍的7种垃圾收集器的作用区域及其之间的关系如下图: 注: 如果2个垃圾收集器之间有连线,表示可以搭配使用 垃圾收集器并没有最好的,只有针对不同应用场景最合适的 (1)Serial收集器 过程 先暂停全部用户线程(Stop The World阅读全文
posted @ 2017-10-01 15:50 atheva 阅读(15) 评论(0) 编辑
摘要: 1.使用 java中的每一个对象都可以作为synchronized的锁进行代码同步,常见的形式 同步代码块锁是synchronized括号内的对象 普通成员方法上,锁是当前的对象,synchronized(this) 静态方法上,锁是当前类的Class对象 2. 原理 synchronized是通过阅读全文
posted @ 2017-09-21 20:02 atheva 阅读(161) 评论(0) 编辑
摘要: 责任链模式 责任链模式的定义:使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系, 将这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理他为止。这里就不再过多的介绍什么是责任链模式,主要来说说java中如何编写。主要从下面3个框架中的代码中介绍。 servlet中的f阅读全文
posted @ 2017-09-11 10:44 atheva 阅读(329) 评论(1) 编辑
摘要: 本篇文章从代码层面上分析了spring中解决循环依赖的策略。所谓循环依赖就是多个Bean之间依赖关系形成一个闭环,例如A->B->C->...->A 这种情况,当然,最简单的循环依赖就是2个Bean之间互相依赖:A->B(A依赖B), B->A(B依赖A) 。在Spring中,如果A->B,那么在创建A的过程中会去创建B,在创建B(或B的依赖)的过程中又发现B->A,这个时候就出现了循环依赖的现象。阅读全文
posted @ 2017-08-20 20:35 atheva 阅读(186) 评论(0) 编辑
摘要: Spring-dubbo是个人开发的一个整合Spring-boot和dubbo的一个jar包,主要目的是使用Spring Boot快速搭建一个Dubbo服务,主要功能是在Spring Boot启动的时候加载和初始化Dubbo相关配置和Bean,利用Spring Boot的配置即个完成Dubbo的配置。底层完全是使用Dubbo,只是在Dubbo基础上进行二次开发。阅读全文
posted @ 2017-08-07 13:49 atheva 阅读(57) 评论(0) 编辑
摘要: 摘要 本篇文章只是个人阅读mybatis源码总结的经验或者个人理解mybatis的基本轮廓,作为抛砖引玉的功能,希望对你有帮助,如果需要深入了解细节还需亲自去阅读源码。 mybatis基本架构 mybatis的源码应该算是比较容易阅读的,首先mybatis核心功能就是执行Sql语句,但在其基础上又有阅读全文
posted @ 2017-08-03 19:13 atheva 阅读(717) 评论(2) 编辑
摘要: 这个类首先是一个抽象类,定义了一个模板,很多java同步相关的类(ReetrantLock、Semaphore、CountDownLatch等)都是基于AbstractQueuedSynchronizer来实现的 AbstractQueuedSynchronizer 本身就是一个链表,提供的线程安全阅读全文
posted @ 2017-07-30 17:55 atheva 阅读(30) 评论(0) 编辑