Tomcat源码阅读-为什么Bootstrap反射调用Catalina?
2018-02-13 17:15
633 查看
RT
看Bootstrap类注释上写的很清楚/** * Bootstrap loader for Catalina. This application constructs a class loader * for use in loading the Catalina internal classes (by accumulating all of the * JAR files found in the "server" directory under "catalina.home"), and * starts the regular execution of the container. The purpose of this * roundabout approach is to keep the Catalina internal classes (and any * other classes they depend on, such as an XML parser) out of the system * class path and therefore not visible to application level classes. * * @author Craig R. McClanahan * @author Remy Maucherat */ public final class Bootstrap {
为了把Catalina及它依赖的类比如 XML parser与应用级别的类隔离(以使用不同类加载器的方法)
确认加载正确的Catalina类,因为tomcat也有三个类加载器,双亲委派模型,https://q.cnblogs.com/q/91104/
tomcat的启动是通过bootstrap 加载一些公共类、配置环境、实例化Catalina类,具体的业务代码还是在catalina类里面的。这样反射的好处是解耦。 可以不依赖应用层的classpath独立加载,通过catalina.home指定相应的目录就可以了,对应用程序不可见 https://www.cnblogs.com/qichengXiao/p/5897687.html
还有别的原因吗?欢迎补充
相关文章推荐
- Tomcat源码阅读(二)Bootstrap
- Tomcat源码阅读之Bootstrap启动流程与classLoader设计
- Tomcat 源码阅读(三)Catalina.start
- Tomcat源码阅读之Server.xml文件的处理与Catalina启动流程
- tomcat源码阅读(二)——ClassLoader及catalina启动
- tomcat源码解析(一)——Bootstrap和Catalina启动部分
- Tomcat源码阅读(三)Catalina.createStartDegester
- Tomcat 源码阅读(二)Catalina.load
- Tomcat源码阅读(三)Catalina
- Tomcat源码阅读之Server.xml文件的处理与Catalina启动流程
- Tomcat源码解析之catalina 、bootstrap
- Apache.Tomcat 调用Servlet原理之Class类的反射机制,用orc类解释
- tomcat源码阅读学习(1)
- tomcat源码阅读3
- Tomcat7.0 start Could not find the main class: org.apache.catalina.startup.Bootstrap.
- tomcat源码阅读(一)——环境搭建
- Tomcat中Lifecycle详解(源码阅读)
- 数据库中间件 为什么阅读 MyCAT 源码?
- Horizon 源码阅读(四)—— 调用Novaclient流程
- tomcat 中的 bootstrap 与 catalina