ムラウチドットコム エンジニアブログ

日本最大級ブログランキング「にほんブログ村」、シンプルなブログサービス「muragon」を運営するムラウチドットコム メディアグループのエンジニアブログです。

Spring Framework 5.0 の変更点まとめ!

明日11/24(金)は両国でSpring Fest 2017が開催されます。
当社メディアグループからも何人か参加します!


そこで遅ればせながら、Spring Framework 5.0の新機能や変更点をまとめてみました。

JDK 8以上が必須

ジェネリックの型推論やラムダ式がソースコードで使用されているようです。そのためJDK 8以上が必須になり、Java 7やJava 6を使用する場合は4.3.xを使い続ける必要があります。
JDK 9とも完全に互換性があります。


Java EE 7以上が必須

Java EE 7以上が必須になります。Tomcat 7は使用できなくなるので、Tomcat 8.5への移行が必要になってきそうです。
Java EE 8とも互換性があります。


削除されたパッケージ

Apache Tiles 2、Hibernate ORM 3、Hibernate ORM 4のパッケージが削除され、Apache Tiles 3以上、Hibernate ORM 5以上が必須になっています。

また、以下のライブラリのサポートが終了しています。

  • Portlet
  • Velocity
  • JasperReports
  • XMLBeans
  • JDO
  • Guava

コア

  • Java 8で導入されたデフォルトメソッドがインターフェースで実装
  • パッケージレベルでNon-null APIを宣言
  • 安全にファイル取得できるようResourceインターフェースにisFileメソッドを追加
  • spring-jclでCommons Loggingのブリッジが可能

DIコンテナ

  • インジェクションがオプションであることを@Nullable アノテーションで指定可能
  • GenericApplicationContext / AnnotationConfigApplicationContextで、Supplierを使用したBean定義のカスタマイズが可能
  • XMLを使用したBean定義で最新バージョンのxsdで検証
  • クラスパスのスキャンの代替に候補になるコンポーネントのインデックスのサポート

Spring Web MVC

  • コントローラーメソッドでServlet 4.0のPushBuilderのサポート
  • Jackson 2.9のサポート
  • AntPathMatcherの代わりに、効率的なパースと拡張構文を使用できるParsingPathMatcherの追加
  • @ExceptionHandler メソッドでRedirectAttributesが使用可能
  • @ResponseStatus の代わりにResponseStatusExceptionが使用可能

Spring WebFlux

Spring Web MVCに代わるリアクティブプログラミングが可能になるSpring WebFluxが追加されました。従来の1スレッド1リクエストではなく、Node.jsに代表されるようなイベントループモデルになります。

Kotlinのサポート

もともとKotlinはJavaで書かれた既存のライブラリを利用できるが、Spring FrameworkがネイティブのKotlinのフレームワークであるかのように開発者がKotlinアプリケーションを作成できるようにサポートしたとのこと。
サポートするKotlinのバージョンは1.1以上。


終わりに

Java 6、Java 7を切り捨てたことによるJavaの言語面での新機能がフレームワークサイドで採用されたこと、Spring WebFlux、Androidでも採用されたKotlinのサポートが目玉となっています。
最近話題になったdev.toのようにHTTP/2に対応できるようPushBuilderが気軽に使いやすくなったのも気になります。
個人的にはJavaは業務システムで使用される枯れたイメージがありましたが、Spring Framework 5.0が出たことによってモダンなWEBアプリケーションが作りやすくなったのではないでしょうか。


参考

×

非ログインユーザーとして返信する