2011-05-29 65 views

回答

5

當編寫Java代碼,這兩種類型的 目標之間 區分:一個「正常」的環境和 「託管」的環境。兩者的區別很簡單。 在正常環境中,您(編寫代碼的 人)調用 main()方法。在託管的 環境中,您不需要。託管的 環境有時被稱爲 容器環境,因爲它們通常會遵循容器或 託管模型。在此模型中,主機 容器是包含 代碼的main()方法,並且獨立的 單位的第三方代碼(此後稱爲 插件)由 容器管理。

到這裏看看: http://benpryor.com/blog/2007/10/14/managed-environments/

+0

謝謝Reticent。現在我明白了。 – Uday 2011-05-29 06:14:31

6

我不知道具體的情況下你聽說過但通常,當我們說「管理的環境」這意味着有一些關於工作的事情外容器。代表你。在'非託管'的情況下,你必須確實自己管理你的對象生命週期。例如,如果您僅僅使用Hibernate,則需要創建會話,執行操作並關閉會話。所以它是unmanaged,因爲你必須自己管理它。但是,如果您在Spring容器內部使用Hibernate,則Spring的會話打開和關閉將由您負責。在這種情況下,對您而言是managed

+0

謝謝亞歷克斯。這是我想知道的.. – Uday 2011-05-29 06:14:01

0

託管環境是事務管理,安全和數據庫連接池由應用程序服務器或託管資源(如外部第三方JTA API如JBossTM)完成的環境。從而免除這些責任。 要使hibernate在託管環境中工作,您需要指定您希望在休眠配置中使用的基礎事務管理器。

非託管環境是應用程序使用資源適配器連接到基礎數據庫連接,事務管理和安全功能而不使用應用程序服務器的環境。 您不必在hibernate配置中指定事務管理器,就使用默認的hibernate的JDBCTransaction。