在企业应用程序中使用hibernate和spring时,是否创建了两个单独的JVM实例?如果在eclipse中使用hibernate和spring类,他们是否会使用eclipse的jvm实例加载他们的类?是否有任何spring或hibernate类包含main方法以创建jvm实例?如果jar中没有主类,那么如何将类加载到内存中或者如何为它们创建单独的JVM实例?
答案 0 :(得分:2)
Hibernate和Spring在应用程序中一起使用时是否有单独的JVM实例?
没有
如果在eclipse中使用了hibernate和spring类,他们是否会使用eclipse的jvm实例加载他们的类呢?
这取决于您如何从Eclipse中启动应用程序。但答案可能是否定的(并且有充分的理由。)
是否有任何spring或hibernate类包含main方法才能创建jvm实例?
Hibernate,No。Spring,也许吧。它取决于>>怎么<<你正在使用Spring。
如果您使用的是Spring Boot,那么Spring代码库中的某个地方可能会有main
方法。
如果您在Web容器中使用经典Spring(例如Tomcat,Jetty等),则容器会提供main
方法。
如果jar中没有主类,那么如何将类加载到内存中,或者如何为它们创建单独的JVM实例?
通常,答案是JAR(或WAR)由其他知道如何加载和启动“您的”代码的东西使用。其他东西可以是使用java
命令运行的普通Java程序,它有自己的main
方法,或者它可以是一个自定义启动程序(例如用C / C ++编写)启动嵌入式JVM并在Java代码中调用自定义“入口点”方法以启动操作。无论哪种方式,JVM都会负责代码加载。
您拥有多个JAR并不意味着您应该或应该为它们创建单独的JVM。这取决于JAR中软件的性质。
答案 1 :(得分:1)
如果您使用“ java”命令行多次运行企业应用程序jar文件,则每个创建的实例将在单独的JVM n中运行