jvm实例,tomcat容器,spring容器,在内存中的关系
1.一个java项目对应一个jvm吗?2.tomcat里面加载多个java项目,是不是用了一个jvm?3.java项目中的spring容器,部署到tomcat容器,启动t...
1.一个java项目对应一个jvm 吗?
2.tomcat里面加载多个java项目 ,是不是用了一个jvm?
3.java项目中的spring容器,部署到tomcat容器,启动tomcat以后的jvm实例 ,在内存中是怎么一个包含关系? 展开
2.tomcat里面加载多个java项目 ,是不是用了一个jvm?
3.java项目中的spring容器,部署到tomcat容器,启动tomcat以后的jvm实例 ,在内存中是怎么一个包含关系? 展开
1个回答
展开全部
Java项目跟jvm进程数量没什么直接关系。通常我们用java 命令运行一个程序就会启动一个jvm进程,就是你所说的jvm实例。可以看看tomcat的启动脚本(非常复杂),但最终是通过一个java命令启动tomcat容器。webapp运行于tomcat容器基础之上,和tomcat同属于一个jvm进程是必然的。至于spring,容器的概念更多是逻辑上的,它仅仅是一个类(ApplicationContext,BeanFactory)的实例。web应用启动时加载一个WebApplicationContext实例,即我们所说的spring容器
追问
按你的意思理解 一个程序启动一个jvm实例,一个项目能保证在一个jvm里面吗
另外 如果一个tomcat加载n各项目 他们之间彼此调用(比如通过http访问),是不是跨jvm?
谢谢
追答
同一个项目可以部署在多台机器上,通过代理服务器转发请求给不同机器处理。这样就是个简单地web集群了。同一个tomcat下部署地应用自然是在一个jvm里。至于你说地通过http访问,其实只通过客户端通过http协议发起地,并不是服务器之间地调用关系。相当于客户端地两个请求
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询