我正在寻找可能的方法来开发具有这些任务的后端服务器:
- 处理通过 RabbitMQ 到达的消息(处理基本上是这样的:使用 Hibernate 加载一些域模型实体并让它完成它的工作)
- 应该是可插拔的。对于不同的客户,将加载不同的模块。每个客户都是一个单独的实例。
- 其中一些模块可能必须公开不同类型的服务(REST,也许是 SOAP,...)
- 应该使我能够通过 AOP 或其他一些机制删除大部分样板代码(如事务管理、日志记录)。
对于一些背景。我使用 Windows 服务、Castle Windsor、NHibernate 和 NServiceBus 或其他一些消息传递解决方案在 .NET 中做了这些事情。所以我可以说我偏向于单一的整体解决方案(这是我对 Java EE 和类似的印象)并且宁愿使用一些较小的框架或库来实现这一切。只要它们运行在同一个应用服务器上。
我目前正在研究的选项是:
- 像 GlassFish 这样的 Java EE 应用程序服务器应该能够完成所有这些事情(JPA、Hibernate 等)
- Play 框架和连接到 RabbitMQ 的 Akka Actor,Akka Actor 在其中处理消息并调用域模型方法。在 Play 中开发的 Web UI 将有一个单独的应用程序。
- 网状
- Spring 作为 Jetty 容器中 Java EE 的替代品
我刚开始涉足 Java 生态系统,所以如果我对某些事情感到困惑,我可以使用一些通用的指示和说明......
编辑:
添加其他选项:
- 操作系统
- 轴突