[戻る]

Java読書会BOF「Spring徹底入門 第2版」を読む会 第3回

開催概要

日時

2024年12月21日(土) 10:00-17:00

場所

教育文化会館 第3会議室

出席者(敬称略)

高橋(智)、遠藤、岩室、高橋(徹)

本日は、p.25の下、「コンストラクタインジェクション」から読み始めました。

Chapter 2 Spring Core (DI X AOP)

2.1 SpringによるDI(依存性の注入)

2.1.4 インジェクションの種類

コンストラクタインジェクション
  • p.25 注7 「Springリファレンスではコンストラクタインジェクションが推奨となる」とある

  • record型にコンストラクタインジェクションは適用できるか?

名前によるオートワイヤリング
  • p.32 下5行目「Java標準の@javax.annotation.Resourceアノテーション(JRS 250)を使用します」について、「Java標準」とは何を指すか? Java EEのことか、Java SEのことか?

    • Java SE 8のAPI仕様に、javax.annotation.Resourceが存在する。しかし、Java SE 21のAPI仕様でjavax.annotation.Resourceが見つからない

    • Java SE 9で javax.annotationのアノテーション定義が非推奨となり、Java SE 11で削除となっていました。

    • Java SE 11以降で javax.annotationのアノテーションを利用したい場合、別途ライブラリの併用が必要(jakarta.annotation-api)。ただし、javaxのパッケージ名の商標問題により、jakarta.annotation パッケージとなっています。

  • 【宿題】javaxパッケージ名の由来を調べてみる

2.1.6 コンポーネントスキャン

フィルタを明示したコンポーネントスキャン
  • p.38 フィルタを明示したコンポーネントスキャンは、アノテーションがなくても対象となるか?

    • 実験してみたところ、アノテーションを付与しなくても Beanとして取得することができた

2.1.7 Beanのスコープ

異なるスコープのインジェクション
  • 【宿題】p.46 下3-4行目 「Spring Frameworの公式マニュアルには、... prototypeスコープに対してはルックアップメソッドインジェクションを使用するよう明記されています。」とあるが、ドキュメントのどこに記載されているかを調べてみる

2.1.9 コンフィグレーションの分割

Java Configの分割
  • サンプルのように、@Importしなくても、@Configurationを読み込むのではないか?

  • AppConfigクラスには、@Configuration を付与しなくてもいい?

2.1.11 JSR 330: Dependency Injection for Java

  • 【誤植】リストの上3行目、コンストラクタの定義なのに、classキーワードが記述されている

    • 誤) public class UserServiceImpl(...) {

    • 正) public UserServiceImple(...) {

2.2 AOP

2.2.2 Spring AOP

  • Proxyは、Beanがinterfaceであることが前提

次回

本日は、p.68 の最後まで。 次回は、p.69 2.2.4 XMLでAdviceを定義 からです。

[戻る]