Spring Bootにwebアプリを配置する


Spring Bootにwebアプリを配置する
この記事では、Spring Bootでウェブアプリケーションを作成し、構成する方法を紹介します.
依存を追加
Spring webプログラムを使用するには、次のような依存性が必要です.
        
            org.springframework.boot
            spring-boot-starter-web
        
ポートの設定
前の記事で述べたように、ポートを設定するには、appication.propertiesファイルに以下のように配置する必要があります.
server.port=8083
あなたがyamlファイルを使っているなら、
server:
    port: 8083
あるいはjavaファイルの形式を通じて:
@Component
public class CustomizationBean implements
        WebServerFactoryCustomizer {

    @Override
    public void customize(ConfigurableServletWebServerFactory container) {
        container.setPort(8083);
    }
}
Contect Pathの設定
デフォルトでは、Spring MVCのcontext pathは「/」であり、修正したいなら、プロファイルappication.propertiesで変更できます.
server.servlet.contextPath=/springbootapp
yamlファイルの場合:
server:
    servlet:
        contextPath:/springbootapp
同様に、javaコードで変更できます.
@Component
public class CustomizationBean
  implements WebServerFactoryCustomizer {
  
    @Override
    public void customize(ConfigurableServletWebServerFactorycontainer) {
        container.setContextPath("/springbootapp");
    }
}
エラーページの設定
デフォルトの場合はSpring Bootはwhitelabelの機能を開いてエラーを処理します.この機能は本質的には自動的にBaicErrror Controllerを登録します.もし間違ったプロセッサが指定されていなかったら.同様に、このエラーコントローラもカスタマイズできます.
@RestController
public class MyCustomErrorController implements ErrorController {

    private static final String PATH = "/error";

    @GetMapping(value=PATH)
    public String error() {
        return "Error haven";
    }

    @Override
    public String getErrorPath() {
        return PATH;
    }
}
もちろん、前に話したカスタムサーバ情報と同じように、web.xmlにerror-pageを追加するように、エラーページをカスタマイズすることもできます.
@Component
public class CustomizationBean
  implements WebServerFactoryCustomizer {
  
    @Override
    public void customize(ConfigurableServletWebServerFactorycontainer) {        
        container.addErrorPages(new ErrorPage(HttpStatus.BAD_REQUEST, "/400"));
        container.addErrorPages(new ErrorPage("/errorHaven"));
    }
}
この機能によって、誤りをより細かく分類することができます.
プログラム中にSpring Bootを停止します.
SpringApplicationは、Spring Bootアプリケーションを停止する静的なexit()方法を提供しています.
    @Autowired
    public void shutDown(ApplicationContext applicationContext) {
        SpringApplication.exit(applicationContext, new ExitCodeGenerator() {
            @Override
            public int getExitCode() {
                return 0;
            }
        });
    }
第二のパラメータは、ExitCodeGeneratorの実装であり、主としてExitCodeに戻るために使用される.
ログレベルの設定
設定ファイルでログレベルを設定できます.
logging.level.org.springframework.web: DEBUG
logging.level.org.hibernate: ERROR
Servletを登録します
時々、私達はプログラムをネストしていないサーバーに実行したいです.この時はカスタムサービスが必要になるかもしれません.Spring Bootも素晴らしいサポートを提供しています.私達はServlet Registration Beanに登録すればいいです.
    @Bean
    public ServletRegistrationBean servletRegistrationBean() {

        ServletRegistrationBean bean = new ServletRegistrationBean(
                new SpringHelloWorldServlet(), "/springHelloWorld/*");
        bean.setLoadOnStartup(1);
        bean.addInitParameter("message", "SpringHelloWorldServlet special message");
        return bean;
    }
ネストサーバを切り替え
デフォルトでは、Spring BootはTomcatを入れ子の内部サーバーとして使用します.

    
        org.springframework.boot
        spring-boot-starter-web
        
            
                org.springframework.boot
                spring-boot-starter-tomcat
            
        
    
    
        org.springframework.boot
        spring-boot-starter-jetty
    
excludeはTomcatを持参し、spring-book-starter-jectを追加すればいいです.
本明細書の例は、https://github.com/ddean2009/learn-springboot2/tree/master/springboot-config-webappを参照することができる.
もっと多い教程はflydeanのブログを参照してください.