美文网首页
周志明关于tomcat和spring的提问解答

周志明关于tomcat和spring的提问解答

作者: 简书徐小耳 | 来源:发表于2019-01-16 10:03 被阅读79次

想一下周志明的提问:
当我们的tomcat下面部署多个web应用 而spring的jar包被放在了common或者shared下面
则 我们的spring的class 由commonloader或者sharedload去加载,那么spring如何去管理各个子项目下面的bean

答案就在我们的standardContext的startInternel的方法
他会在该方法里面给每个项目生成一个webappclassLoader,并把该线程设置为线程上下文中的classloader
然后我们先启动监听者,组合过滤器和standardContext 最后启动load on startup的servlet。在此过程中 我们的spring也会启动成功
而spring 依靠线程上下文的classloader去加载项目下面的bean。这样可以隔离各个项目之间的代码,也可以让spring管理自己的bean集合
即在web形式下我们启动spring容器一般都是利用ContextLoaderListener执行
生成的spring容器和servletContext互相绑定

filter 的调用类似于spring中Aop的调用方式一直调用到拦截器结束才执行servlet的service方法

context-param -> listener -> filter -> servlet。

相关文章

网友评论

      本文标题:周志明关于tomcat和spring的提问解答

      本文链接:https://www.haomeiwen.com/subject/ijmpdqtx.html