Tomcat的类加载器在Java的类加载器上 新增了5个类加载器. 3个基础类,每个web应用类加载器,+jsp加载器
commonClassLoader CatalinaClassLoader shareClassLoader webappClassLoader JspClassLoader
3个基础类加载器 在 conf/catalina.properties种进行配置;
tomcat打破了双亲委派机制;
1.部署在用一个tomcat上的两个web应用所使用的类库要相互隔离
2.部署在同一个tomcat上的两个web应用所使用的java类库要相互共享
3.保证toncat服务器自身的安全不受部署的web应用程序影响
4.需要支持jsp页面的热部署和热加载
热加载和热部署:
热加载指在不重启服务的情况下让更改的代码生效,加载热可以提升开发以及调试的效率.他是基于java的类加载器实现的.热加载的不安全性,一般不会用于正式的生产环境;
热部署指的是在不重启服务的情况下重新部署整个项目,比如tomcat热部署就是在程序运行时,修改的war包中的内容,tomcat就会删除之前war包解压的文件夹,重新解压新的war包生成新的文件夹
如何实现热加载.
1.实现自己的类加载器
2,从自己的类加载器加载需要热加载的类
3.不断轮询要加载的类是否有更新,如果有就更新.实现加载