六种常用的事务

12年前
J2EE 应用程序中有六种常用的范围类型:

Transaction(事务)

Request(请求)

HTTP session(HTTP 会话)

Application(应用程序)

Global(全局)

None(无)

事务范围覆盖一个事务的整个生命周期。这个范围开始于一个事务的开始。这时会创建一个惟一的范围键。这个范围结束于提交或回滚事务时。这时,与事务范围相关联的所有对象被自动释放回它们的池。

请求范围与一个 servlet 请求的范围对应;在容器调用 servlet 来处理请求之后,请求范围立即开始。同时会创建一个惟一的范围键。在 servlet 完成处理之前请求范围结束。这时,与这个范围相关联的所有对象被自动释放回它们的池。

HTTP 会话范围与一个 HTTP 会话的生命周期对应。它从创建一个新的 HttpSession 时开始。这时会创建一个惟一的范围键。它结束于会话被销毁或过期时。这时,与这个范围相关联的所有对象被自动释放回它们的池。

应用程序范围覆盖应用程序的整个生命周期。它开始于把一个应用程序部署到应用服务器时。这时会创建一个惟一的范围键。这个范围结束于应用程序停止运行或从应用服务器中删除时。这时,与这个范围相关联的所有对象被自动释放回它们的池。

全局范围是最大的范围。采用这种范围的对象不会被释放。

无范围用于不使用对象池的对象。采用这种范围的对象每次都通过自己的对象构造函数来创建,并由 Java 垃圾收集器释放。对象管理器根本不管理它们。