「Spring 5.3.21」applicationContext.xmlでコンストラクタインジェクションを行うサンプル

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

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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インスタンスを取得 Bean ID->testUser
User user = (User) context.getBean("testUser");
System.out.println("年齢: " + user.getAge());
context.close();
} catch (BeansException e) {
e.printStackTrace();
}
}
}
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インスタンスを取得 Bean ID->testUser User user = (User) context.getBean("testUser"); System.out.println("年齢: " + user.getAge()); context.close(); } catch (BeansException e) { e.printStackTrace(); } } }
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インスタンスを取得 Bean ID->testUser 
                  User user = (User) context.getBean("testUser");

                  System.out.println("年齢: " + user.getAge());

                  context.close();

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

      }

}

2.クラスの定義サンプル
2.1 Userクラスの作成(User.java)

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
package com.arkgame.study;
//Userクラスの定義
public class User {
// Studentクラスのインスタンス
private final Student stu;
// コンストラクタ
public User(Student stu) {
this.stu = stu;
}
// getAge関数を呼び出し
public int getAge() {
return stu.getAge();
}
}
package com.arkgame.study; //Userクラスの定義 public class User { // Studentクラスのインスタンス private final Student stu; // コンストラクタ public User(Student stu) { this.stu = stu; } // getAge関数を呼び出し public int getAge() { return stu.getAge(); } }
package com.arkgame.study;

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

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

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

      // getAge関数を呼び出し
      public int getAge() {

            return stu.getAge();
      }

}

2.2 Studentクラスの作成(Student.java)

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
package com.arkgame.study;
//Studentクラスの定義
public class Student {
//変数ageを返す
public int getAge() {
return 35;
}
}
package com.arkgame.study; //Studentクラスの定義 public class Student { //変数ageを返す public int getAge() { return 35; } }
package com.arkgame.study;

//Studentクラスの定義
public class Student {
      
      //変数ageを返す
      public int getAge() {
            return 35;
      }
}

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
<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>
<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>
	<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の設定

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
<?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">
<!--Studentクラスのbeanインスタンス -->
<bean id="stu" class="com.arkgame.study.Student" />
<!-- Userクラスのbeanインスタンス -->
<bean id="testUser" class="com.arkgame.study.User">
<!--Userクラスのコンストラクタの引数はStudentクラスです -->
<constructor-arg ref="stu"></constructor-arg>
</bean>
</beans>
<?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"> <!--Studentクラスのbeanインスタンス --> <bean id="stu" class="com.arkgame.study.Student" /> <!-- Userクラスのbeanインスタンス --> <bean id="testUser" class="com.arkgame.study.User"> <!--Userクラスのコンストラクタの引数はStudentクラスです --> <constructor-arg ref="stu"></constructor-arg> </bean> </beans>
<?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">

      <!--Studentクラスのbeanインスタンス -->
      <bean id="stu" class="com.arkgame.study.Student" />
      
      <!-- Userクラスのbeanインスタンス -->
      <bean id="testUser" class="com.arkgame.study.User">
         <!--Userクラスのコンストラクタの引数はStudentクラスです  -->
            <constructor-arg ref="stu"></constructor-arg>
      </bean>


</beans>

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

Spring Web Services

Posted by arkgame