![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JavaEE
zhuhui_zj
这个作者很懒,什么都没留下…
展开
-
事务管理笔记(一)
一、简介 在Spring和EJB中事务管理都是业务逻辑开发的重点,在spring2和EJB3之后都对事务管理进行了简化,更多得采用声明式(可通过注解)接口来开发事务。在典型的事务管理中,主要的关注点有三个:事务传播、事务隔离和事务回滚。 事务传播是指事务上下文Transactional Context如何在调用链中传播;事务隔离是指并发的事务相互之间不产生干扰;事务回滚涉及当产生异...2008-12-14 15:44:15 · 114 阅读 · 0 评论 -
netty代码分析(一)--总体设计
一、简介 Netty3是一个轻量级的NIO框架,它的主要目标是实现底层nio接口的封装,分离IO传输与网络协议的设计,从而简化网络应用的实现。它大致的原理如下: 在用netty3框架实现一个应用服务器的时候,最主要的扩展点就是ChannelHandler,它类似于系统中的拦截器。系统中的数据传输全都采用异步的方式,当每一次底层出现数据到达/发送时,系统都会产生一个事件ev...2014-10-20 12:44:39 · 149 阅读 · 0 评论 -
spring aop分析(三)
四、方法调用 在JdkDynamicAopProxy类的invoke()方法中创建了一个ReflectiveMethodInvocation类,该方法将执行拦截器链和最终的方法调用:public class ReflectiveMethodInvocation implements ProxyMethodInvocation, Cloneable { public Obje...2014-10-20 12:44:09 · 115 阅读 · 0 评论 -
spring aop分析(二)
三、计算拦截器链 调用链图: JdkDynamicAopProxy实现了InvocationHandler接口,当其创建的JDK Proxy上的某一个方法被调用时,将会被JdkDynamicAopProxy类中的invoke(..)方法拦截:final class JdkDynamicAopProxy implements AopProxy, InvocationHa...2014-10-20 12:43:34 · 111 阅读 · 0 评论 -
spring aop分析(一)
一、简介 Spring Aop模块采用了代理(Proxy)机制来实现AOP功能,在运行过程中aop框架大致可以分成三个阶段:创建代理、计算拦截器链、处理调用。 在“创建代理”阶段,Spring AOP可以根据目标类的实现或设置采用JDK自动代理或CGLIB来创建目标对象的代理;对于静态的Pointcut,框架在目标方法第一次调用时将计算应用于该方法之上的“拦截器链”;在方法调...2014-10-20 12:42:17 · 88 阅读 · 0 评论 -
并发容器分析(五)--ConcurrentHashMap
一、简介 ConcurrentHashMap是Map的一种并发实现,在该类中元素的read操作都是无锁了,而write操作需要被同步。这非常适合于读操作远大于写操作的情况。在实现过程中,ConcurrentHashMap将所有元素分成了若干个segment,每个segment是独立的,在一个segment上加锁并不影响其他segment的操作。segment本身是一个hashtable,...2010-10-13 22:20:37 · 217 阅读 · 0 评论 -
并发容器分析(四)--ConcurrentLinkedQueue
一、简介 ConcurrentLinkedQueue是一个无锁的queue实现,它采用了一种无锁算法(在API中有说明),相比于传统的同步的queue来说吞吐量可以大大提高,同时它也不同于BlockingQueue,并不单单提供阻塞操作。它主要的目的是通过采用无锁的算法,使得read/write操作均不需要对容器加锁,提高容器吞吐量二、具体实现 查看相关的论文 ...2010-10-13 22:20:09 · 99 阅读 · 0 评论 -
并发容器分析(三)--LinkedBlockingQueue
一、简介 LinkedBlockingQueue是BlockingQueue的一种使用Link List的实现,它对头和尾(取和添加操作)采用两把不同的锁,相对于ArrayBlockingQueue提高了吞吐量。它也是一种阻塞型的容器,适合于实现“消费者生产者”模式。二、具体实现 LinkedBlockingQueue底层的定义如下:public class Linke...2010-10-13 22:19:43 · 110 阅读 · 0 评论 -
并发容器分析(二)--ArrayBlockingQueue
一、简介 BlockingQueue接口定义了一种阻塞的FIFO queue,每一个BlockingQueue都有一个容量,让容量满时往BlockingQueue中添加数据时会造成阻塞,当容量为空时取元素操作会阻塞。ArrayBlockingQueue是对BlockingQueue的一个数组实现,它使用一把全局的锁并行对queue的读写操作,同时使用两个Condition阻塞容量为空时的...2010-10-13 22:19:24 · 165 阅读 · 0 评论 -
并发容器分析(一)--CopyOnWriteArrayList
一、简介 JDK5中添加了新的concurrent包,其中包含了很多并发容器,这些容器针对多线程环境进行了优化,大大提高了容器类在并发环境下的执行效率。 CopyOnWriteArrayList类是一个线程安全的List接口的实现,在该类的内部进行元素的写操作时,底层的数组将被完整的复制,这对于读操作远远多于写操作的应用非常适合。在CopyOnWriteArrayList上进行...2010-10-13 22:19:05 · 124 阅读 · 0 评论 -
事务管理笔记(二)
5.3、事务属性配置 spring中对于事务属性的配置可以有两种办法,一种是在<tx:advice/>的<tx:attributes />下的<tx:method />上配置属性,以指定对应的事务属性。 <tx:method />的有关设置 属性默认值描述name 与事务关联的方法名,可用通配符(*)pr...2008-12-15 10:51:05 · 126 阅读 · 0 评论 -
netty代码分析(二)--ChannelPipeline
一、简介 ChannelPipeline是事件(event)的通道,它用于组织事件拦截器ChannelHandler。所以本质上,它只是ChannelHandler的一个链表。从I/O端获取的数据将以事件的方式通过ChannelPipeline,并被ChannelUpstreamHandler拦截,最终被程序的业务逻辑处理。要发送的数据通过pipeline被ChannelDowmstr...2014-10-20 12:45:10 · 141 阅读 · 0 评论