在J2EE的最初几天,事务如何处理?

时间:2016-03-03 10:14:29

标签: java-ee web-applications transactions web-container

虽然我差不多十年前学习过Java,但大部分时间我都使用过C,C ++和核心Java(不是创建企业应用程序)。现在,我已经开始在企业版中工作了。我对最初几天的工作方式有所怀疑。

我试图了解网络应用程序如何工作。根据我的理解,用于创建Web应用程序的主要技术是Servlets / JSP(不考虑更高的抽象,如Spring MVC,struts等),部署在Web容器(Apache Tomcat)中。

现在,使用这些,如何处理交易支持?据我了解,网络容器并不支持交易。那么它最初意味着交易支持是通过明确编码吗? (此处的交易我指的是数据库事务/分布式事务)。如果是这样,这将是多么强大?

了解这一点的任何信息都会有很大的帮助。

1 个答案:

答案 0 :(得分:1)

实际上,像Tomcat这样的准系统servlet容器不支持任何形式的事务管理。您基本上有三种选择:

  1. 手动管理事务(可以在JDBC,Hibernate以及JPA中完成)。
  2. 或者,使用Spring。
  3. 或者,用真正的Java EE服务器替换Tomcat,以便使用EJB / JTA。例如。 TomEE。
  4. 这不仅适用于“最初的J2EE时代”,而且现在仍然非常正确。只有,J2EE的EJB 2.x是一个糟糕的API,因此Spring更受欢迎。由于Java EE 5(2006)EJB 3.x基于从Spring中学到的经验而得到了很大的改进,因此如果您在真正的Java EE服务器中可以使用EJB,则没有理由用Spring取代它。只有那些坚持Tomcat的人(例如客户或托管限制)通常没有其他选择,只能让事务管理变得轻而易举。

    另见: