Spring Frameworkのバージョン変更に伴い、以下の条件に該当する場合はアプリケーションの修正をしてください。
項番 | 条件 | 影響 | 修正方法 |
1 | Spring IDEを使用する場合 | Spring IDEを使用できません。 | 新たな開発ツールへ移行してください。 またEclipse向けSpring Tool Suite 4へ移行する場合、かつ、XML形式のBean定義ファイルの修正量が多い場合はJava形式のBean定義ファイルを追加し、既存のXML形式のBean定義ファイルから追加したJava形式のBean定義ファイルを参照することを推奨します。実装方法は表の下記の例を参考にしてください。 |
2 | バージョンを含むXSDファイルを指定している場合 | バージョンを含むXSDファイルが提供されなくなったため、アプリケーションのビルド時やアプリケーションの起動時にエラーが発生する場合があります。 | バージョンを含まないXSDファイルを指定してください。 またXSDファイルのバージョン変更に伴って廃止された属性を置き換えてください。 |
3 | Spring FrameworkのAPIにおいて@Nullableが付与されていない引数にNULLを指定する場合 | Spring FrameworkのAPIにおいて@Nullableが付与されていない引数にNULLを指定できなくなりました。@Nullableの付与有無はJavadocを確認してください。 | Spring FrameworkのAPIの引数にNULLを指定しないように修正してください。 |
4 | 以下のすべての条件に該当する場合です。
| CookieLocaleResolverが生成するCookieのロケールの区切り文字が変わります。 変更前:
変更後:
| Cookieを読み込むAPIをロケールの区切り文字“-”に対応しているAPIへ修正してください。 またはCookieLocalResolverのlanguageTagCompliantプロパティをfalseに設定してください。 |
5 | 以下のいずれかの条件に該当する場合です。
| CookieLocaleResolverが生成、および読み込むCookieのロケールとタイムゾーンの間の区切り文字が変わります。 変更前:
変更後:
| Cookieを生成、読み込むAPIをロケールとタイムゾーンの間の区切り文字が"/"のCookieを生成、読み込むように修正してください。 |
6 | @RequestMappingのproduces属性にパラメタを含む形式で条件を設定する場合 | @RequestMappingのマッチングの判定処理が変わります。 変更前:
変更後:
| パラメタをマッチングの判定に使用しない場合はproduces属性にパラメタを含めない形式で条件を設定してください。 |
7 | 以下のすべての条件に該当する場合です。
| データベースからロードしたデータを手動でFlushした際の動作が変わります。 変更前:
変更後:
| @Transactionalを付与したクラス、またはメソッドでデータベースからロードしたデータを手動でFlushしたい場合は@Transactional(readOnly=false)を使用してください。 |
8 | O/Rマッピング連携(JPA)でJNDIからEntityManagerFactoryを取得する場合 | アプリケーション実行時にClassCastExceptionが発生し、実行が失敗する場合があります。 | O/Rマッピング連携(JPA)を使用する場合は、LocalContainerEntityManagerFactoryBeanを使用してください。 詳細は“2.3.3.5 O/Rマッピング連携(JPA)”を参照してください。 |
9 | 以下のすべての条件に該当する場合です。
| NULLのBeanの要素がインジェクションされなくなります。 | NULLのBeanの要素がインジェクションされないことを考慮して、インジェクション先の変数の使用方法を修正してください。 |
10 | ListableBeanFactory#getBeansOfTypeを使用してNULLのBeanを含むインスタンスを取得していた場合 | ListableBeanFactory#getBeansOfTypeの戻り値にNULLのBeanが含まれなくなります。 | NULLのBeanが含まれなくなることを考慮して、戻り値の使用方法を修正してください。 |
11 | O/Rマッピング連携(Hibernate)でJTATransactionManagerを使用する場合 | アプリケーション実行時にTransactionRequiredExceptionが発生し、実行が失敗する場合があります。 |
|
例
<context:component-scan />を使用してXML形式のBean定義ファイルからJava形式のBean定義ファイルを参照する例を示します。
XML形式のBean定義ファイル:
… <beans> <context:component-scan base-package="com.example.config" /> … <beans> … |
Java形式のBean定義ファイル:
@Configuration
@ComponentScan(basePackages="com.example.config")
public class UserConfig{
…
} |
Spring Framework 4.3は、Spring Framework 3.2で提供されていた一部のパッケージが削除されています。それにより、Spring Framework 4.3から一部機能が廃止されています。廃止された主な機能を以下に示します。
機能名 | パッケージ名 | 説明 |
---|---|---|
iBATISとの連携 | org.springframework.orm.ibatis | Spring Framework 4.3はiBATIS連携が廃止されました。iBATISと同等の実装でO/Rマッピングを使用する場合は、iBATISの後継機能であるMyBatisを使用してください。MyBatisについては、“第3章 MyBatis”を参照してください。 |
org.springframework.orm.ibatis.support | ||
Strutsとの連携 | org.springframework.web.struts | Spring Framework 4.3はStrutsとSpring Frameworkの連携機能が廃止されました。 |