原创 spring事務 connection
spring事務使用了aop、動態代理,而數據庫的事務最終是作用在connection上面的,那麼spring整個過程中開頭的begin,結束的commit,rollback如何保證使用的是同一個connection,以及mybatis如
原创 java8 AIO AsynchronousFileChannel例
package com.kd.nio; import java.nio.ByteBuffer; import java.nio.channels.AsynchronousFileChannel; import java.nio.chan
原创 test1
package ztest.a; import java.util.Arrays; import java.util.Comparator; public class Test3 { //核心數組排序 參考jdk Arra
原创 Shiro 3 filter
首先Shiro提供的過濾器繼承關係 過濾器的過濾方法是dofilter,最終可以找到AdviceFilter中的doFilterInternal 這個類中還有一個preHandle方法 返回true or false決定是否通過過濾器,
原创 spring 事務 筆記
TransactionProxyFactoryBean afterPropertiesSet() ProxyFactory proxyFactory = new ProxyFactory(); 設置了前後攔截器,以及處理事務的
原创 spring筆記一
頂層接口BeanFactory ApplicationContext bean信息解析到BeanDefinition public abstract class AbstractBeanDefinition extends Be
原创 java7 ReentrantLock
重入鎖,獨佔式 一、ReentrantLock.lock()->sync.lock() 1、NonfairSync final void lock() { if (compareAndSetState(0, 1))
原创 RocketMQ 筆記4 HA主從同步
broker主從同步包括同步雙寫 和 異步複製, 其實這兩種都是使用相同的方式傳輸的,同步雙寫只是在主線程上阻塞了一段時間,等待傳輸結果,返回給producermaster針對每一個slave之間會有一個長
原创 RocketMQ 筆記3 IndexFile
IndexFile大小固定,文件名是創建時候的時間戳IndexHeader(40字節) Slot Table(500w * 4字節) Index Linked List(4 * 500W * 20
原创 RocketMQ 筆記1
RocketMQ 物理部署結構如上圖所示, RocketMQ的部署結構有以下特點:1.Name Server是一個幾乎無狀態節點,可集羣部署,節點之間無任何信息同步。2.Broker部署相對複雜,Broker分爲Master與Slave,
原创 dubbo 5 Listener和Filter
前面的服務提供者和消費者暴漏和引用過程中首先都是用的Protocol, 而且使用ExtensionLoader加載的adaptive的Protocol,最終得到的是 ProtocolListenerWra
原创 netty筆記三 ChannelPipeline
1.netty的ChannelHandler設計,使用了接口的適配器模式ChannelHandler ChannelHandlerAdapter ChannelInboundHandler
原创 spring筆記6 容器加載過程、bean初始化
AbstractApplicationContext public void refresh() throws BeansException, IllegalStateException { synchronized (this.st
原创 netty筆記1
EventLoopGroup.next()得到EventLoop EventLoopGroup初始化時候會實例化一個EventLoop[]數組,使用的是EventLoopGroup的newChild方法
原创 mybatis 插件原理
1、mybatis初始化 每個基於 MyBatis 的應用都是以一個 SqlSessionFactory 的實例爲中心的。SqlSessionFactory 的實例可以通過 SqlSessionFact