我正在规划一个应用程序,它必须向第三方扩展代码提供与 Java EE 容器非常相似的服务。基本上,这个应用程序的作用是找到一组工作项(目前计划使用 Hibernate)并将它们分派(dispatch)给工作项使用者。
工作项使用者加载项详细信息,调用第三方扩展代码,然后如果第三方代码没有失败,则更新工作项上的某些状态并提交已完成的所有工作。
我明确没有将其编写为 Java EE 应用程序。然而,本质上,我的应用程序必须提供容器的许多服务;它必须提供事务管理、连接池和管理,以及一定的部署支持。我如何 A) 直接提供这些,或 B) 选择第三方库来提供它们。由于较大项目的要求,扩展编写者将使用 Hibernate(如果这有什么不同的话)。
值得注意的是,在我提到的所有功能中,我了解最少的是事务管理。如何向容器中运行的扩展代码提供此服务?
最佳答案
您好,我建议使用 Spring 框架。它提供了一种很好的方式来汇集您正在谈论的许多不同的服务。
例如,为了满足您的特定需求:
- 事务管理/连接池
- 我构建了一个基于 Spring 的独立应用程序,该应用程序使用 Apache Commons 连接池。我还相信 Spring 内置了某种事务管理。
- 部署支持
- 我使用 ant 作为前端加载程序来部署和运行。它运作得很好。我只是使用 ant fork 了一个单独的进程来运行我的 Spring 独立应用程序。
- 线程化。
- Spring 支持 Quartz,它可以很好地处理线程和线程池
- DAO
- Spring 与 Hibernate 和其他类似项目完美集成
- 配置
- 使用其 xml 属性定义——Spring 非常适合多环境配置。
关于java - 如何编写一个或多或少充当容器的应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/779429/