Spring Boot 2系にあげたときにやったことをまとめようと思います。(関連記事) 今回は、Spring Webの話です。Spring Boot 2.0.9.RELEASEに上げた話になります。2.2対応はまたいつか書きます。
依存しているライブラリのバージョン
Spring Bootのバージョンを1.5.22
から2.0.9
に上げると依存しているライブラリのバージョンが次のようになります。
Spring Boot 1.5.22.RELEASE → Spring Boot 2.0.9.RELEASE
Hibernate Validator
@NotBlank
, @NotEmpty
, @Email
が非推奨になった
Hibernate Validator 6.0.0.Finalからorg.hibernate.validator.constraints.NotBlank
, org.hibernate.validator.constraints.NotEmpty
, org.hibernate.validator.constraints.Email
が非推奨になりました。参考
Spring Boot 2系からはjavax-validationが提供するアノテーションを利用します。
- org.hibernate.validator.constraints.NotBlank + javax.validation.constraints.NotBlank
Jackson /JSON Support
Spring Boot 2からspring-boot-starter-json
が作られました。jackson-databind
, jackson-datatype-jdk8
, jackson-datatype-jsr310
, jackson-module-parameter-names
が含まれていますので、これらをspring-boot-starter-json
に置き換えることができます。参考
Spring Web
WebMvcConfigurerAdapter.classが非推奨
Spring Boot 2(Spring 5)からWebMvcConfigurerAdapter.classが非推奨となり、先のクラスを拡張するのではなく、WebMvcConfigurer.classを実装するようになりました。 Spring 5からJava8+になってdefaultメソッドが使えるようになり、WebMvcConfigurerAdapter.classを使わずともインターフェースに実装できるようになったからです。Javadoc
パッケージ変更
Spring Boot 2(Spring 5)からWebと言ってもServletとReactiveに分かれたためです。
- org.springframework.boot.autoconfigure.web.ErrorAttributes + org.springframework.boot.web.servlet.error.ErrorAttributes
- org.springframework.boot.autoconfigure.web.ErrorController + org.springframework.boot.web.servlet.error.ErrorController
プロパティ変更
Boot 2.0.9.RELEASEの設定値一覧を見れば書いてあります。
- server.context-path + server.servlet.context-path
おまけ
org.springframework.web.util.HtmlUtils.htmlEscape(String input, String encoding)の実装が変わった
見出しの通りです。4.3.x.RELEASEから5.0.x.RELEASEに変わりました。4.3.x
では、input == null
のときnullが返ってきていましたが、5.0.x
からはExceptionを投げるようになりました。
このように書いていたので本番で障害が起きてしまいました...みなさんお気をつけて
// inputはnullのとき String result = HtmlUtils.htmlEscape(input, encoding); if (result == null) { 何か処理 }