但是,如果我添加(…),那么我是否没有有效的Java EE应用程序服务器?然后不是我的bean EJB吗?还是还有其他一些定义性特征?
不,您没有Java EE应用程序服务器,成熟的Java EE应用程序服务器不仅仅是Tomcat + Spring
+独立的事务管理器。而且,即使添加了JMS提供程序和EJB容器,您仍将没有Java EE服务器。所有部件之间的粘合对IMO很重要,并且是Java
EE容器附加值的一部分。
关于EJB,EJB规范比JPA还要多,并且还规范了会话Bean和消息驱动的Bean(实际上,即使出于历史原因,即使JPA是Java EE 5中EJB
3.0规范的一部分,我也不认为JPA实体是EJB。 -在Java EE 6中不再是这样,JPA 2.0和EJB
3.1是单独的规范。我还应该提到一个带有注释的Spring Bean
@Transactional不等同于Session Bean。Java
EE容器可以对会话Bean进行更多操作(请参见下文)。尽管您可能不需要它们,但它们并不是严格等同的。
最后,Java EE容器实现一个标准,Spring容器没有实现,它是专有的。
符合Java EE的应用程序服务器为您提供了什么,使您无法轻松地/容易地从Tomcat与某些第三方子系统之间获得信息?
正如我所说,我认为“胶水”是附加值的一部分,对整体的坚固性有很大贡献。然后,ewernli的答案很好地强调了难以实现的目标。我只是添加:
- 群集和 故障转移 (以实现容错)
- 行政设施
是的,一个好的Java
EE服务器将做得很整洁,以提高容错能力(连接池,JNDI树,JMS目标,对等豆的自动重试,智能EJB客户端,事务恢复,服务迁移等)。对于“关键任务”应用程序-
绝大多数不是-这很重要。在这种情况下,Servlet API之上的库不能替代IMO。



