「Spring 5.3.21」アノテーション@Componentでコンストラクタインジェクションを行うサンプル

環境
Spring 5.3.21
Java 17
Eclipse IDE 2022-06 M2 (4.24.0 M2)

操作方法
1.実行ファイル(TestApp.java)

package com.arkgame.study;

import org.springframework.beans.BeansException;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class TestApp {

      public static void main(String[] args) {

            // applicationContext.xmlを読み込む
            try (ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml")) {
                  
                  // DIコンテナからbeanインスタンスを取得
                  User user = context.getBean(User.class);

                  System.out.println("名前: " + user.getName());

                  context.close();

            } catch (BeansException e) {
                  e.printStackTrace();
            }

      }

}

2.クラスの定義
2.1 Studentクラスの定義

package com.arkgame.study;

import org.springframework.stereotype.Component;

//Studentクラスの定義
@Component
public class Student {

      // 変数ageを返す
      public String getName() {
            return "山田太郎";
      }
}

2.2 Userクラスの定義

package com.arkgame.study;

import org.springframework.stereotype.Component;

//Userクラスの定義
@Component
public class User {

      // Studentクラスのインスタンス
      private final Student stu;

      // コンストラクタ
      public User(Student stu) {
            this.stu = stu;
      }

      // getName関数を呼び出し
      public String getName() {

            return stu.getName();
      }

}

3.pom.xmlに依存関係spring 5.3.21のjarをインストールします
以下の内容を編集します

	<dependencies>
          <!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
          <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-context</artifactId>
                <version>5.3.21</version>
          </dependency>
    </dependencies>

4.配置ファイル」applicationContext.xmlの設定

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xmlns:context="http://www.springframework.org/schema/context"
      xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans.xsd
    http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context.xsd">
    
    <!-- 指定したパッケージの配下がscanの対象 -->
    <context:component-scan base-package="com.arkgame.study"/>
</beans>

5.動作確認
「TestApp.java」を右クリックして実行(R)->「Javaアプリケーション」をクリックします。
「名前: 山田太郎」が表示されます。

Spring Web Services

Posted by arkgame