在企业应用程序中同时使用休眠和弹簧时,是否创建了两个单独的JVM实例?如果在eclipse中使用了hibernate和spring类,它们还会使用eclipse的jvm实例来加载其类吗?是否有任何spring或hibernate类都包含main方法以创建jvm实例?如果jar中没有主类,如何将这些类加载到内存中,或者如何为它们创建单独的JVM实例?
最佳答案
在应用程序中一起使用Hibernate和Spring时,是否有单独的JVM实例?
没有。
如果在eclipse中使用了hibernate和spring类,它们还会使用eclipse的jvm实例来加载其类吗?
这取决于您如何从Eclipse中启动应用程序。但是答案可能是“不”(并且有充分的理由。)
是否有任何spring或hibernate类都包含main方法以创建jvm实例?
冬眠,不,春天。这取决于>>如何<
如果您使用的是Spring Boot,那么在Spring代码库中的某个地方可能会有一个main
方法。
如果您在网络容器(例如Tomcat,Jetty等)中使用经典的Spring,则main
方法由容器提供。
如果jar中没有主类,如何将这些类加载到内存中,或者如何为它们创建单独的JVM实例?
通常,答案是其他知道如何加载和启动“您的”代码的人使用JAR(或WAR)。其他可能是使用java
命令运行的普通Java程序,并且具有自己的main
方法,或者它可能是启动嵌入式JVM的自定义启动器(例如,用C / C ++编写)。调用Java代码中的自定义“入口点”方法来开始操作。无论哪种方式,JVM都会负责代码的加载。
您拥有多个JAR的事实并不意味着您会或应该为其创建单独的JVM。这取决于JAR中软件的性质。