2016-04-30 15 views
0

當在企業應用程序中使用hibernate和spring時,是否創建了兩個單獨的JVM實例?如果在eclipse中使用hibernate和spring class,他們會使用eclipse的jvm實例來加載它們的類嗎?是否有任何spring或hibernate類包含main方法以創建jvm實例?如果jar中沒有主類,那麼這些類是如何加載到內存中的,或者我們如何爲它們創建一個單獨的JVM實例?當在企業應用程序中使用hibernate和spring時,是否創建了兩個單獨的JVM實例?

+1

所有問題的答案是「否」。關於你最後的問題:爲什麼?您的應用程序(或應用程序服務器)將包含主要方法並將所有必需的類加載到內存中。 Hibernate或Spring不需要自己做這件事。 – dunni

回答

2

是否有一個單獨的JVM實例Hibernate和春天時,他們一起使用在一個應用程序?

如果Hibernate和Spring類是在Eclipse中使用,他們將使用Eclipse的JVM實例加載其類也?

這取決於如何從Eclipse內部啓動應用程序。但答案可能是沒有(並有很好的理由)。

是否有任何spring或hibernate類包含main方法以創建一個jvm實例?

休眠,沒有春天,也許。這取決於你如何使用Spring。

  • 如果您在使用Spring啓動,那麼Spring代碼庫中的某個地方有可能會是一個main方法。

  • 如果您在web容器(例如Tomcat,Jetty等)中使用經典的Spring,則容器提供main方法。

如果沒有主類在一個罐子裏,如何在類加載到內存或我們如何可以創建一個單獨的JVM實例又在哪裏?

一般來說,答案是JAR(或WAR)被其他知道如何加載和啓動「你的」代碼的東西所使用。其他東西可能是一個普通的Java程序,它使用java命令運行,並且有自己的main方法,或者它可以是自定義啓動程序(例如用C/C++編寫),啓動嵌入式JVM並調用定製的「入口點「方法來啓動事情。無論哪種方式,JVM負責代碼加載。

您擁有多個JAR並不意味着您會或應該爲它們創建單獨的JVM。這取決於JAR中軟件的性質。

+0

謝謝。您是否瞭解有關研究JVM相關概念的優秀書籍/資源? –

+0

有數百本關於Java的書籍!他們都談論「JVM相關概念」...... –

相關問題