java - 如何在面向服务的架构中使用mybatis 提高效率?

标签 java soa ibatis mybatis

我们有多项服务,理想情况下,每项服务都应相互独立运行。这些服务的主要用途是支持我们的网络应用程序。我们正在寻找将 ibatis 与这些服务结合使用的最佳方式。

我们的第一种方法是使用 SqlSessionFactory 建立一个项目,并让所有服务实现都使用该项目进行数据访问。这意味着项目依赖于数据对象的所有服务(我们必须将服务和实现分开以消除循环依赖),并且它包含所有 sql 映射。优点是任何时候都有一个 SqlSessionFactory 实例,并且需要管理一个配置。尽管如果像 junits 或其他一些实用程序一样使用一项服务,则无论如何都会加载所有 sql 映射,并且所有服务都是依赖项。

另一种方法是让每个服务都有自己的 ibatis 配置和 SqlSessionFactory 实例。这将避免需要依赖数据访问项目的圣地,但意味着 Web 应用程序上的多个 SqlFactory 实例。

我喜欢第二种方法,尽管我看到了这两种方法的优缺点。

你会怎么做?你从我的论点中添加或删除了什么?

请帮忙!!!

最佳答案

虽然我认为你的第一个论点的优势指向了 SOA 的一般弱点,但我认为如果你在做 SOA,那么让所有服务相互依赖的整个目的就落空了。

如果您正在执行 SOA,您将接受为了组件的解耦和隔离而使用更低效的资源的权衡。

关于java - 如何在面向服务的架构中使用mybatis 提高效率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4102945/

相关文章:

java - JPA/Hibernate 双向多对一导致 StackOverflowException

java - 从其他类获取 JComponent 会改变帧大小

java - 应用函数和过程的使用

architecture - 可以使用 REST 设计 SOA 吗?

web-services - SOAP、WSDL 和 WS-* 是 SOA 的一部分吗?

soa - 研究 SOA 负载平衡名称服务器

java - 如何在 mybatis XML 映射器中使用 partials 或 helpers?

java - MyBatis 多结果集与过程

java - 构建步骤时,Spring 批处理 ItemListenerSupport 的类型不明确

java - 如何使用 MyBatis 从 SQL 调用存储过程