java - 如何编写一个或多或少充当容器的应用程序?

标签 java hibernate transactions containers

我正在规划一个应用程序,它必须向第三方扩展代码提供与 Java EE 容器非常相似的服务。基本上,这个应用程序的作用是找到一组工作项(目前计划使用 Hibernate)并将它们分派(dispatch)给工作项使用者。

工作项使用者加载项详细信息,调用第三方扩展代码,然后如果第三方代码没有失败,则更新工作项上的某些状态并提交已完成的所有工作。

我明确没有将其编写为 Java EE 应用程序。然而,本质上,我的应用程序必须提供容器的许多服务;它必须提供事务管理、连接池和管理,以及一定的部署支持。我如何 A) 直接提供这些,或 B) 选择第三方库来提供它们。由于较大项目的要求,扩展编写者将使用 Hibernate(如果这有什么不同的话)。

值得注意的是,在我提到的所有功能中,我了解最少的是事务管理。如何向容器中运行的扩展代码提供此服务?

最佳答案

您好,我建议使用 Spring 框架。它提供了一种很好的方式来汇集您正在谈论的许多不同的服务。

例如,为了满足您的特定需求:

  1. 事务管理/连接池
    • 我构建了一个基于 Spring 的独立应用程序,该应用程序使用 Apache Commons 连接池。我还相信 Spring 内置了某种事务管理。
  2. 部署支持
    • 我使用 ant 作为前端加载程序来部署和运行。它运作得很好。我只是使用 ant fork 了一个单独的进程来运行我的 Spring 独立应用程序。
  3. 线程化。
    • Spring 支持 Quartz,它可以很好地处理线程和线程池
  4. DAO
    • Spring 与 Hibernate 和其他类似项目完美集成
  5. 配置
    • 使用其 xml 属性定义——Spring 非常适合多环境配置。

关于java - 如何编写一个或多或少充当容器的应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/779429/

相关文章:

java - JPA 存储库 '[X]' 操作上的 key '[Y]' 重复条目 'save'。保存的实体已定义其键

PostgreSQL 无法在 PL/pgSQL 中开始/结束事务

MySQL:使用事务处理嵌套存储过程中的回滚

java - 如何在 Java 中将已排序数组重置为未排序数组?

java - 安装 Android Studio 不会安装 Android SDK

java - 在 Firefox 中使用 selenium 在没有下载框的情况下下载代码有问题吗?

java - JBoss接缝: How to Open jpa/hibernate session in view

java - 使用 DB 对 Hibernate 进行单元测试,测试返回 nullpointerException

java - 从java调用mysql proc时获取锁等待超时

Java Jni 和 C++