복붙노트

[SPRING] 전쟁으로 배포 된 스프링 부트 응용 프로그램의 기본 시작 페이지 변경

SPRING

전쟁으로 배포 된 스프링 부트 응용 프로그램의 기본 시작 페이지 변경

프로덕션에서 전쟁으로 배포되는 스프링 부트 응용 프로그램의 기본 시작 페이지를 변경하는 방법을 찾으려고했지만 web.xml 파일 없이는 수행 할 수있는 방법을 찾을 수 없습니다.

문서에 따르면 EmbeddedServletContainerFactory를 다음 코드와 함께 사용하여이 작업을 수행 할 수 있습니다.

@Bean
public EmbeddedServletContainerFactory servletContainer() {

    TomcatEmbeddedServletContainerFactory factory = new TomcatEmbeddedServletContainerFactory();

    TomcatContextCustomizer contextCustomizer = new TomcatContextCustomizer() {
        @Override
        public void customize(Context context) {
            context.addWelcomeFile("/<new welcome file>");
        }
    };
    factory.addContextCustomizers(contextCustomizer);

    return factory;
}

war 파일을 생성하고 Tomcat에 배포하고 Embedded Tomcat을 사용하지 않는 것처럼, 이것은 아무 것도하지 않습니다.

어떤 생각? web.xml 파일을 추가해야한다면 스프링 부트를 사용하여 어떻게 할 수 있습니까? DispatcherServlet의 응용 프로그램 컨텍스트로 Application bean (main 메소드 사용)을 지정해야합니까? 그 문서는 그것에 대해 아주 명확하지 않습니다.

미리 감사드립니다!

페드로

해결법

  1. ==============================

    1.할 일이 너무 어렵지는 않습니다 ... 기본 매핑을 전달해야합니다.

    할 일이 너무 어렵지는 않습니다 ... 기본 매핑을 전달해야합니다.

    @Configuration
    public class DefaultView extends WebMvcConfigurerAdapter{
    
        @Override
        public void addViewControllers( ViewControllerRegistry registry ) {
            registry.addViewController( "/" ).setViewName( "forward:/yourpage.html" );
            registry.setOrder( Ordered.HIGHEST_PRECEDENCE );
            super.addViewControllers( registry );
        }
    }
    
  2. ==============================

    2.마이클의 튜토리얼에 따라 필자는 /를 내 index.gsp 파일에 매핑 할 수있었습니다.

    마이클의 튜토리얼에 따라 필자는 /를 내 index.gsp 파일에 매핑 할 수있었습니다.

    @Controller
    class Routes {
    
        @RequestMapping({
            "/",
            "/bikes",
            "/milages",
            "/gallery",
            "/tracks",
            "/tracks/{id:\\w+}",
            "/location",
            "/about"
        })
        public String index() {
            return "forward:/index.gsp";
        }
    }
    
  3. ==============================

    3.나는 다음과 같이 그것을하고있다.

    나는 다음과 같이 그것을하고있다.

    package org.gwtproject.tutorial.configuration;
    
    import org.springframework.context.annotation.Configuration;
    import org.springframework.core.Ordered;
    import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
    import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
    import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
    
    /**
     * Configure the welcome page 
     * 
     */
    @Configuration
    public class SpringBootWelcomePageConfiguration extends WebMvcConfigurerAdapter implements WebMvcConfigurer {
    
        /**
         * redirect a user to the welcome page when he visits tha app without a
         * destination url.
         */
        @Override
        public void addViewControllers(ViewControllerRegistry registry) {
            registry.addViewController("/").setViewName("forward:/ForExampleAGwtEntrypoint.html");
            registry.setOrder(Ordered.HIGHEST_PRECEDENCE);
            super.addViewControllers(registry);
        }
    }
    
  4. from https://stackoverflow.com/questions/26057995/changing-default-welcome-page-for-spring-boot-application-deployed-as-a-war by cc-by-sa and MIT license