Spring boot - исполняемый файл также можно развернуть на сервере приложений - PullRequest
0 голосов
/ 29 августа 2018

Допустим, у меня есть веб-приложение с весенней загрузкой - оно запускается через Gradle (встроенный tomcat). Но мне нужно также, чтобы была возможность развернуть войну стандартным способом на сервере приложений. Как приложение должно быть настроено? Стандартный web.xml вместе с конфигурацией xml?

В настоящее время у меня есть что-то вроде:

@SpringBootApplication

открытый класс MyApplication расширяет SpringBootServletInitializer {

public static void main(String[] args) {
    System.setProperty("spring.profiles.active", "dev");
    SpringApplication.run(MyApplication.class, args);
}

@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
    return application.sources(MyApplication.class);
}

@Configuration
@ConditionalOnWebApplication
public static class WebConfiguration {

    @Bean
    public ServletListenerRegistrationBean<ServletContextListener> registerClientCookieConfigListener () {
        ServletListenerRegistrationBean<ServletContextListener> srb =
                new ServletListenerRegistrationBean<>();
        srb.setListener(new MyConfigListener());
        return srb;
    }

    @Bean
    public ServletListenerRegistrationBean<HttpSessionListener> registerMySessionConfigListener () {
        ServletListenerRegistrationBean<HttpSessionListener> srb =
                new ServletListenerRegistrationBean<>();
        srb.setListener(new MySessionConfigListener());
        return srb;
    }


    @Bean
    public FilterRegistrationBean registerLoginFilter() {
        FilterRegistrationBean filter = new FilterRegistrationBean(new MyFilter());
        filter.setUrlPatterns(Collections.singletonList("/*"));
        return filter;
    }

    @Bean
    public ServletRegistrationBean registerSAMLDispatcherServlet() {
        ServletRegistrationBean bean = new ServletRegistrationBean(
                new DispatcherServlet(), "/test/*");
        bean.setLoadOnStartup(1);
        return bean;
    }
}

}

, что соответствует 1: 1 сопоставлению с web.xml. Можно ли даже развернуть его на сервере приложений без web.xml?

1 Ответ

0 голосов
/ 30 августа 2018

Вам не нужен файл web.xml для развертывания весенней загрузки на автономном сервере Tomcat или любом другом веб-сервере.

весенняя загрузка не зависит от конфигураций xml, она автоматически настраивает эквивалент сервлета диспетчера.

чтобы развернуть приложение весенней загрузки на другом сервере, вам нужно обновить упаковку до war in maven

 <packaging>war</packaging>

и сообщите maven, что веб-сервер будет доступен во время выполнения, и не упаковывайте его с областью действия provided

<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-tomcat</artifactId>
   <scope>provided</scope>
</dependency>

несколько документов

https://www.baeldung.com/spring-boot-war-tomcat-deploy

https://www.mkyong.com/spring-boot/spring-boot-deploy-war-file-to-tomcat/

...