たなちの備忘録

自分の知識をストックしていくためのブログ

Spring Framework 5.0にバージョンアップしたときに調べたこと

スポンサーリンク

この記事に限らず全体的に他のサイトの方がわかりやすいんだけど、自分の理解を深めたいからメモしておきます。

公式サイト:Spring Framework

wiki:Home · spring-projects/spring-framework Wiki · GitHub

JDK 8以上が必須

SpringのソースコードがJava8のソースコードレベルに基づいているため、JDK 8(Java SE 8)以上をが必要になった。 総称型やラムダ式等による可読性が向上したとのこと。

また、Springの対応機能でJava EE 7が必要になった。
(Servlet 3.1, Bean Validation 1.1, JPA 2.1, JMS 2.0, Tomcat 8.5+, Jetty 9.4+, WildFly 10+)

Java EE 8への互換性もある。
(Servlet 4.0, Bean Validation 2.0, JPA 2.2, JSON Binding API 1.0 等)

削除されたパッケージ、クラス、メソッド

Spring Framework 4系で非推奨になっているクラスやメソッドの多くが物理的に削除されている。

  • Package beans.factory.access (BeanFactoryLocator mechanism).
  • Package jdbc.support.nativejdbc (NativeJdbcExtractor mechanism).
  • Package mock.staticmock removed from spring-aspects module.
  • Packages web.view.tiles2 and orm.hibernate3/hibernate4 dropped.

以下のサポートも削除されたため、必要な場合はFramework 4.3.xが推奨されている。
Portlet, Velocity, JasperReports, XMLBeans, JDO, Guava.

コア機能について

spring-jclモジュールの追加

ログ出力については、ログ出力ライブラリと他のライブラリにログ出力を移譲するログファサードライブラリを組み合わせて実装されている。 現在主流になっているのは、「SLF4J(ログファサードライブラリ) + Logback(ログ出力ライブラリ)」の組み合わせらしい。

これまでSpring FrameworkはCommons Logging(ログファサードライブラリ)のAPIを使用してログ出力していたため、「SLF4J + Logback」でログ出力をする場合は 「Commons Logging => SLF4J」に処理を移譲するブリッジ(jcl-over-slf4j)を利用する必要があった。

Spring Framework 5.0からは、ブリッジの部分をspring-jclが担うため、ブリッジを追加することなく、Commons LoggingのAPIを使用して「Log4j 2.x」「SLF4J」「JUL(java.util.logging)」経由でログを出力することができる。

以下、参考にさせていただいたサイト

qiita.com

qiita.com

www.bunkei-programmer.net

Javaのログ出力: 道具と考え方

Eclipse 外部jarファイルをクラスパス(ビルドパス)に設定する方法 |