创建企业Java EE应用程序时,必须将部分业务逻辑(如消息传递(MDB))放入EJB模块中。但是,有些EJB可以放在EJB模块或Web模块中。我知道分离模块允许Web层和业务层部署在不同的机器上。因此,我会将我的@Stateful
购物车EJB放入Web模块中。然而,我想不出一个可以应用于每一项业务逻辑的标准标准,决定将EJB包含在哪里。有没有一个指导方针,标准或建议的做法呢?将业务逻辑放在Java EE企业应用程序中的位置
回答
这是我迄今发现的。
EJB模块应该包含大型企业应用程序的业务逻辑核心。另一方面,Web模块包含了一个完整的Web应用程序,该应用程序应该利用EJB模块提供的业务引擎。通常,这些模块分布在不同的服务器上以用于较大的应用程序,除了需要使用驻留在EJB模块中的核心业务逻辑提供的服务的Web应用程序之外,还有客户端应用程序(例如Swing/JFX桌面应用程序)。
换句话说,一会就把业务逻辑独立的EJB模块中,如果:
- 它的目的是通过多个网络或桌面应用程序中使用,或
- 缩放的考虑,可能会迫使核心业务逻辑要由不同的服务器处理
在其他情况下,可以将他的EJB放入Web模块中,并将整个事件打包为WAR文件。
的确,但是认识到将EJB bean从Web模块中的包移动到他们自己的EJB模块是微不足道的。因此,您可以从如此简单的包开始,然后在您的应用程序足够大或需要单独部署业务层时移至模块。 –
您发现的最后一部分,EJB可以放在WAR中,如果EJB模块存在,那么它使用EAR进行部署? EAR中的WAR和EJB?问候 – user75ponic
是的。 EAR(企业应用程序)由许多WAR(Web模块)和一些JAR(ejb模块)组成。当您的企业应用程序设计为分布在多个服务器(多个模块)中时,这是适当的,但您希望在特定情况下将所有模块部署在单个服务器上。但是,如果您不想在不同服务器之间分发模块,则可以将所有EJB放在WAR文件中。 –
正如您在上一句中所述,这正是我所建议的:对于JEE6应用程序使用WAR包装,因为在大多数情况下您不需要EAR。
如果您需要在多个应用程序之间共享业务逻辑,那么您可以将其部署为单独的模块。但通常这样的事情对于扩展的原因并不是必需的,因为您也可以相应地调整运行WAR的应用程序服务器。
- 1. 何处在Spring Hibernate应用程序中放置业务逻辑?
- 2. 应用程序客户端服务器Java EE(Java企业版)
- 3. 创建企业应用程序项目时无法将模块添加到Java EE企业应用程序 - nullPointer
- 4. Java中的业务逻辑
- 5. 在Symfony2中放置业务逻辑的位置?
- 6. 具有独立于ejb的业务逻辑的Java EE应用程序
- 7. ServiceStack,在哪里放置业务逻辑?
- 8. 重用java业务逻辑
- 9. Java EE企业应用程序的自动升级
- 10. Java EE:使用bean将表示逻辑与业务逻辑分离
- 11. 应用程序逻辑与业务逻辑
- 12. 从WCF服务应用程序配置业务逻辑层
- 13. 业务逻辑
- 14. watchkit应用程序的企业配置?
- 15. 应将存储过程业务逻辑放置在MVC中哪里?
- 16. 存储过程或应用程序中的业务逻辑
- 17. SharePoint与SiteCore实现中型企业的企业应用程序
- 18. 在.NET中的企业应用程序
- 19. NameNotFoundException Java企业应用程序
- 20. 企业iOS应用程序
- 21. 在应用程序包中安排业务逻辑
- 22. 业务层业务层的程序逻辑
- 23. 基于JSF的应用程序中的业务逻辑
- 24. 适用于非企业级客户的企业应用程序?
- 25. Java EE - java企业版截屏视频?
- 26. LWUIT在企业J2ME应用程序中?
- 27. Web应用程序中的业务逻辑安全
- 28. Netty中的业务逻辑?
- 29. Django中的业务逻辑
- 30. 在Jsp或业务逻辑中排序?
你能说出这些'商业逻辑'吗? – 2012-10-29 08:08:15
- 处理通过消息收到的外部应用程序的报告,同时将它们推送到Web界面(通过Web界面进行实时监控)并将结果保存到数据库。 - 我在问题中提到的购物车示例,以及处理从Web界面收集哪些详细信息的客户订单。 - 基于用户内容生成图形和图像。 - 根据用户提供的参数在某些NoSQL数据源上生成查询,运行查询并处理结果以有意义的方式显示。 这些只是样本。 –