美文网首页
Spring访问数据之扩展篇

Spring访问数据之扩展篇

作者: 现实目标决心 | 来源:发表于2018-10-21 22:32 被阅读0次

在开始访问数据之前,我们先来总览一下Spring生命之树。讲完了AOP的概念之后,我们继续往上走,来到了Spring对数据的访问层。


Spring的生命之树

本章内容

活用模板方法和Callback
数据访问中的多数据源

0x01活用模板方法和Callback

通常对一些资源的访问,我们都需要首先创建连接,然后进行一些操作,对操作进行异常捕获处理,最后关闭资源的连接。这些对资源的访问操作往往都可以使用模板方法和Callback对其进行封装,达到更加优雅的实现。

这种操作有两个特点:

  • 不变的:对资源连接的管理,异常的处理,资源的关闭。
  • 变化的:对获取的资源进行操作。

于是,我们可以使用Callback来封装那些需要变化的东西,使用模板方法来封装那些不变的东西。

下面以封装FtpClient的访问作为例子来使用模板方法和Callback。


FtpClient的使用示例

我们可以封装如下:


对FtpClient的封装

Callback回调接口定义如下:


Callback回调接口

在真正使用的时候,如下:


模板方法的使用

作为工具类,我们可以直接将这些常用的FTP操作方法定义到FTPClientTemplate中,然后让FTPClientTemplate来实现这些接口。

0x02数据访问中的多数据源

出于灾难恢复或者负载均衡之类的目的考虑,生产环境中通常会存在多台数据库服务器。

下面用两个角度来阐述下在应用程序中,如何对多个数据源进行管理。

主权独立的多数据源

image.png image.png
image.png

“合纵连横”的多数据源

image.png image.png image.png image.png

当然,我们也可以将这两种进行整合:

image.png
image.png

总结:

本文讲了两个方面的内容:

活用模板方法和Callback
数据访问中的多数据源

相关文章

网友评论

      本文标题:Spring访问数据之扩展篇

      本文链接:https://www.haomeiwen.com/subject/ujyizftx.html