zoukankan      html  css  js  c++  java
  • 第一章 架构

    1.1概述
    一个(非常)高层的NHibernate 架构图。

     
    这个图显示了NHiberante使用数据库和配置数据来提供在应用程序中的持久化服务(和持久化对象)。
    我们跟愿意去展示一个更详细的运行时架构图。不幸的是,NHiberante是弹性的和支持多种方式。我们将显示两个极端。这个“lite”架构图已经有了为应用提供它自己的ADO.NET连接和管理他自己的事务。这个approach使用了NHiberante的API的很小的一个子集。
     

    这个完整架构图概述了应用程序院里ADO.NET API并让NHiberante细节处理。
     

    这里是一些图中提到的术语的定义。
    SessionFactory(NHibernate.ISessionFactory)
    对于单一数据库已编译的映射是线程安全的。一个会话工厂,和一个连接器的客户端。可以获得一个随意数据缓存在执行之间被复用,或者在处理时,或集群层次。

    Session(NHibernate.ISession)
    一个单线程的,段生命周期的对象。代理了应用程序和持久层之间的一个会话。封装了ADO.NET连接。提供事务工厂。可以保持持久化数据存储,使用时导航数据视图,或者靠指示字查询对象。

    Persistent Objects and Collections
    短生命周期,单线程对象包含持久化状态和业务功能。这些可能是普通对象,唯一特别的是他们与当前会话关联。会话一旦关闭,他们将被分离和不受任何限制的在任意的应用程序层使用。

    Transient Object and Collections
    持久类的实例,不与当前会话关联。他们可能已经通过应用程序实例化但是没有持久化,或者他们可能在关闭Session时被实例化。

    Transaction(NHibernate.ITransaction)
    (可选的)单线程,短生命周期对象。通过应用程序使用,详细指定工作单元。抽象至ADO.NET transaction.一个Session可以横跨在一些事件的几个Transactions。
    ConnectionProvider(NHibernate.Connection.ConnectionProvider)
    (可选的)一个ADO.NET connections工厂。抽象至IDbConnection.不暴露给应用。但是能够被开发者继承。

    TransactionFactory(net.sf.hibernate.TransactionFactory)
    (可选的)Transaction实例工厂。不暴露给应用,但是能够被开发者继承。

    假定一个"lite"架构,应用可以绕过Transation/Transaction,或者ConnectionProvider APIs去直接和ADO.NET会话。


     

  • 相关阅读:
    Java 泛型,你了解类型擦除吗?
    终于有人把 Nginx 说清楚了,图文详解!
    给你一份超详细 Spring Boot 知识清单
    Java 中的 SPI 机制是什么鬼?
    用 Git 和 Github 提高效率的 10 个技巧!
    聊聊微服务架构及分布式事务解决方案!
    python多线程同步机制Lock
    python多线程同步机制Semaphore
    mysql 慢查询时间
    mysql row模式查看原始sql
  • 原文地址:https://www.cnblogs.com/HuangLiang/p/716912.html
Copyright © 2011-2022 走看看