美文网首页
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