什么时候是使用应用程序服务器的合适时机?

时间:2011-10-19 16:34:45

标签: java spring transactions rmi application-server

在整个开发过程中,我将代码分离为独立项目,其中大部分都接收JMS提要,对每条消息进行一些处理,保留域对象,然后为使用RMI调用的其他一些项目公开服务。所有这些,除了网络应用程序运行(运行在tomcat上),其中现在有6个,作为独立的jar运行。我想这可以从上面推断,但我不使用EJB;所有项目都使用Spring。

我使用tomcat的经验非常有限,几乎没有使用应用程序服务器的经验,但今天我发现这些应用程序可以托管在tomcat / app服务器上,我觉得这可能是其他人所做的。我听说它可以用于管理事务,jndi查找等,它们听起来很有用。

考虑到这一点,我认为在通过RMI检索域对象时,它也可能开始解决我的延迟加载问题。

我想知道是否有人可以给我一些指导,我是否正确地认为这是要走的路?

2 个答案:

答案 0 :(得分:0)

使用Tomcat(从我的观点来看,它更像是一个轻量级容器)与重型容器(JBoss AS,Glassfish,......)的决定主要取决于你需要做什么。

所有容器共享一些基本内容(例如数据库池,jmx,...)但在某个时刻(例如,您需要一个具有所有自动故障转移的重型集群解决方案),更复杂的容器提供了更多开箱即用的此类需求。当然,您也可以使用轻量级解决方案构建此类解决方案,但使用J2EE容器可能更容易。

另一方面,POJO比EJB更容易处理,只要你没有任何重大的要求,我就会坚持使用Spring。仅使用一小部分J2EE容器并在其中构建应用程序使得它不是真正的使用点。

Spring和J2EE中的事务处理大致相同(两种方式都可以通过使用例如声明方法(注释)来完成)。

如果你从未在容器上运行你的应用程序,我会从更简单的一个(Tomcat)开始,然后在需要时接近更大的应用程序,因为它会让你的生活更轻松。只要你没有任何你无法解决的特殊要求,我就没有理由立即开始使用JBoss或Glassfish并重写你的应用程序以符合J2EE。

答案 1 :(得分:0)

这可能是导致盲人失明的一点,但我认为你是对的。应用服务器是包含所有小项目并绑定它们的包装 - 它控制它们的生命周期以及您可能不想手动处理的其他事情,如部署,缓存和冗余。

虽然我已经在各种企业中对它们进行了多年的编码,但我花了一段时间来弄清楚它们的意思是“容器”,它包含很少的任意独立代码。

可能已经发布了更好的答案 - 只是想让你知道你并不孤单:)