Tomcat源码分析之组件初始化

作者 | 知视

今天我们来聊聊tomcat各个组件是如何初始化的。

我们知道各个组件的初始化是在tomcat启动时调用Catalina对象的load()方法时执行的,到底具体是如何的呢?在这里我们详细展开聊一聊。

首先回到Catalina对象的load()方法,大概是这样的。

public void load() {

        if (loaded) {
            return;
        }
        loaded = true;

        long t1 = System.nanoTime();

        // 省略
        ......

        // 创建和执行我们的 Digester
        Digester digester = createStartDigester();

        // 解析tomcat的server.xml文件为ConfigurationSource.Resource对象
        try (ConfigurationSource.Resource resource = ConfigFileLoader.getSource().getServerXml()) {
            InputStream inputStream = resource.getInputStream();
            InputSource inputSource = new InputSource(resource.getURI().toURL().toString());
            inputSource.setByteStream(inputStream);
            digester.push(this);

你可能感兴趣的:(java,tomcat)