从druid的wiki中发现,druid在强调FilterChain很牛逼,所以对这部分的实现进行一个阅读分析。
共有几个核心定义:
Filter 定义了一些基础行为,包括初始化、销毁以及连接相关的对象。
FilterAdapter
FilterChain 跟Filter几乎一样,但是没有继承java.sql.Wrapper
FilterChainImpl 处理chain中事件的具体事件;将请求分发给下一个filter处理
FilterEventAdapter 适配器的设计模式,提供了doBefore、do event、doAfter三种事件,在连接/执行sql等的前后添加额外的 *** 作
FilterManager 提供了一个SPI的Filter加载,并且维护了一个aliasMap存储filter的名称
FilterChain的加载时机:
在数据库连接池的初始化过程中,使用ServiceLoader.load(Filter.class)进行装配。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)