Spring Bootにwebアプリを配置する
4706 ワード
Spring Bootにwebアプリを配置する
この記事では、Spring Bootでウェブアプリケーションを作成し、構成する方法を紹介します.
依存を追加
Spring webプログラムを使用するには、次のような依存性が必要です.
前の記事で述べたように、ポートを設定するには、appication.propertiesファイルに以下のように配置する必要があります.
デフォルトでは、Spring MVCのcontext pathは「/」であり、修正したいなら、プロファイルappication.propertiesで変更できます.
デフォルトの場合はSpring Bootはwhitelabelの機能を開いてエラーを処理します.この機能は本質的には自動的にBaicErrror Controllerを登録します.もし間違ったプロセッサが指定されていなかったら.同様に、このエラーコントローラもカスタマイズできます.
プログラム中にSpring Bootを停止します.
SpringApplicationは、Spring Bootアプリケーションを停止する静的なexit()方法を提供しています.
ログレベルの設定
設定ファイルでログレベルを設定できます.
時々、私達はプログラムをネストしていないサーバーに実行したいです.この時はカスタムサービスが必要になるかもしれません.Spring Bootも素晴らしいサポートを提供しています.私達はServlet Registration Beanに登録すればいいです.
デフォルトでは、Spring BootはTomcatを入れ子の内部サーバーとして使用します.
本明細書の例は、https://github.com/ddean2009/learn-springboot2/tree/master/springboot-config-webappを参照することができる.
もっと多い教程はflydeanのブログを参照してください.
この記事では、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のブログを参照してください.