Java:何时作为守护程序JAR运行服务器层组件,何时使用EAR

Java:何时作为守护程序JAR运行服务器层组件,何时使用EAR,java,deployment,architecture,jar,ear,Java,Deployment,Architecture,Jar,Ear,维基百科将企业档案(EAR)描述为: …Java EE使用的一种文件格式,用于将一个或多个模块打包到单个归档文件中,以便在应用程序服务器上同时一致地部署各个模块 但我仍然想知道,当试图确定是将Java组件部署为“守护程序JAR”还是EAR时,应用了哪些“逻辑规则”。我所说的“守护程序JAR”是指一个无头、可执行的JAR,它被编码为通过端口侦听和通信,并且像任何传统的守护程序/服务一样永久地存在和运行服务器端 显然,部署到JBoss或GlassFish这样的应用服务器有很多好处,否则EAR和应用服

维基百科将企业档案(EAR)描述为:

…Java EE使用的一种文件格式,用于将一个或多个模块打包到单个归档文件中,以便在应用程序服务器上同时一致地部署各个模块

但我仍然想知道,当试图确定是将Java组件部署为“守护程序JAR”还是EAR时,应用了哪些“逻辑规则”。我所说的“守护程序JAR”是指一个无头、可执行的JAR,它被编码为通过端口侦听和通信,并且像任何传统的守护程序/服务一样永久地存在和运行服务器端

显然,部署到JBoss或GlassFish这样的应用服务器有很多好处,否则EAR和应用服务器就不存在了


我想知道应该考虑哪些具体因素来帮助开发人员决定如何打包/部署后端组件。

好的,应用程序服务器(例如)负责所有的网络工作。很难以稳定、可扩展的方式实现,因此我强烈建议使用应用服务器,而不是尝试实现自己的服务器


EJB和Web服务只是一些带有注释的POJO。甚至数据库事务和安全/访问权限也可以通过EJB上的一些注释来控制。

谢谢@Puce-总之,GlassFish和JBoss等容器只提供了大量可重用的代码/注释,让EE开发人员的生活更轻松?是的,不是编写整个服务器,您正在重用现有的服务器,并将一个钩子插入其中。网络连接、数据库连接、多线程、事务管理、身份验证、授权等底层事务由应用服务器处理,因此您可以更专注于业务逻辑。