首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java EE部署中的Spring类加载机制

Java EE部署中的Spring类加载机制
EN

Stack Overflow用户
提问于 2012-07-11 23:38:54
回答 2查看 461关注 0票数 2

我想了解一下Spring Container的ClassLoader是如何实现的。

下面是一个示例:部署一个包含所有必需jars的WAR,这样Spring Container就可以在tomcat的WAR容器中启动。

我有以下问题:

  1. 我是否认为Spring容器类本身是由web容器创建的ClassLoader加载的?
  2. 当WAR被卸载时,spring容器加载的类java.lang.Class objects是如何卸载的。spring有自己的类加载器吗?或者它使用webcontainer提供的类加载器?如果我的Spring Container正在继承bean (在web.xml中使用parentContextKey ),并且如果其中一个父bean具有lazy-init=true并且是这个部署的WAR所请求的,那么谁将加载和卸载所请求的bean的类对象?

提前感谢

EN

回答 2

Stack Overflow用户

发布于 2012-07-12 02:21:05

所有这些生命周期都是由容器维护的,您可以通过在web.xml中声明它来意识到这一点

代码语言:javascript
复制
                  The RequestContextListener exposes the 'request' scope to the context.
代码语言:javascript
复制
              org.springframework.web.context.request.RequestContextListener      

而这个监听器是从容器监听器延伸而来的,容器能够处理生命周期。

如果你有任何懒惰的东西在里面。web容器将调用委托给spring容器,spring容器在类路径中搜索类。

因此从本质上讲,生命周期得到了处理。您还可以拥有自己的自定义侦听器来处理这些生命周期

看看有没有帮助

票数 0
EN

Stack Overflow用户

发布于 2012-07-12 16:49:26

您的web应用程序可以基于Spring,也可以简单地基于JSP和Servlet。当您运行Tomcat或其他servlet容器时,它会使用它的ClassLoader来加载WAR中的类和库,这些类和库被部署到webapp文件夹(针对Tomcat)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11436294

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档