Обсудите из источника, будет ли метод run SpringApplication выполняться дважды - PullRequest
0 голосов
/ 09 марта 2020

Я посмотрел на источник Springboot и почувствовал, что метод run SpringApplication будет выполнен дважды. В первый раз, когда вы выполните следующий код

public static void main(String[] args) {
    SpringApplication.run(HppaApplication.class, args);
}

Во второй раз, Servlet3.0, если он указан во время запуска веб-контейнера, будет go обратному вызову метода ServletContainerInitializer onStartup в классе реализации, и через @ HandlesTypes в соответствующие классы реализации и, наконец, при вызове метода onStartup SpringBootServletInitializer этот метод вызывает метод createRootApplicationContext, метод CreateRootApplicationContext в приведенном ниже коде

protected WebApplicationContext createRootApplicationContext(ServletContext servletContext) {
    // Omit other code
    return run(application);
}

Опять же, выполняется метод run SpringApplication. Зачем выполнять этот метод дважды?

1 Ответ

0 голосов
/ 09 марта 2020

Он не вызывается дважды. Основной метод используется только при запуске в качестве отдельного приложения. Вызов через SpringBootServletInitializer используется только при развертывании в контейнере сервлета.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...