原创 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