はじめに
このプロジェクトでは、制御の逆転(IoC)デザインパターンと Spring フレームワークを使用して、シンプルな中国語 - 英語のメッセージ切り替えシステムを実装する方法を学びます。
👀 プレビュー
[INFO] -------------------------------------------------------
[INFO] T E S T S
[INFO] -------------------------------------------------------
[INFO] Running com.labex.TestGreeting
你好, Labex
Hello, Labex
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.056 s - in com.labex.TestGreeting
[INFO]
[INFO] Results:
[INFO]
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 11.295 s
[INFO] Finished at: 2024-05-10T12:05:55Z
[INFO] ------------------------------------------------------------------------
🎯 タスク
このプロジェクトでは、以下を学びます。
- 抽象的な
doMessage()メソッドを持つIMessageインターフェイスを作成する方法 MessageCNとMessageENの 2 つの具体的なクラスでIMessageインターフェイスを実装する方法applicationContext.xmlファイルを使用してメッセージビーンを構成する方法TestGreetingクラスでメッセージ切り替え機能をテストする方法
🏆 成果
このプロジェクトを完了すると、以下のことができるようになります。
- メッセージ機能の実装をメインアプリケーションから解離するために IoC デザインパターンを使用する
- Spring フレームワークを使用してメッセージビーンを構成および管理する
- メッセージ切り替えシステムの機能を検証するための単体テストを書く
IMessage インターフェイスを作成する
このステップでは、返り値のない doMessage() と呼ばれる抽象メソッドを含む IMessage インターフェイスを作成します。
com.labexパッケージ内に新しい Java ファイルIMessage.javaを作成します。- ファイル内で、次のコードを使用して
IMessageインターフェイスを定義します。
package com.labex;
// メッセージ機能のためのインターフェイス
public interface IMessage {
// メッセージを表示するためのメソッドシグネチャ
void doMessage();
}
このインターフェイスは、メッセージ機能を実装したい任意のクラスの基本構造を定義します。doMessage() メソッドは、具体的なメッセージクラスによって実装される抽象メソッドです。
MessageCN クラスを作成する
このステップでは、IMessage インターフェイスを実装する MessageCN クラスを作成します。このクラスは msg 属性を持ち、get/set メソッドを提供します。また、doMessage() メソッドをオーバーライドして、「你好,Labex」という文字列を出力します。
com.labexパッケージ内に新しい Java ファイルMessageCN.javaを作成します。- ファイル内で、次のコードを使用して
MessageCNクラスを定義します。
package com.labex;
// 中国語メッセージ用の IMessage インターフェイスの実装
public class MessageCN implements IMessage {
private String msg; // メッセージを格納する変数
// メッセージを取得するための Getter メソッド
public String getMsg() {
return msg;
}
// メッセージを設定するための Setter メソッド
public void setMsg(String msg) {
this.msg = msg;
}
// IMessage インターフェイスの doMessage メソッドの実装
@Override
public void doMessage() {
// 中国語の挨拶メッセージを出力する
System.out.println("你好," + msg);
}
}
MessageCN クラスは IMessage インターフェイスを実装し、doMessage() メソッドの実装を提供しており、中国語の挨拶メッセージを出力します。
MessageEN クラスを作成する
このステップでは、IMessage インターフェイスを実装する MessageEN クラスを作成します。このクラスは msg 属性を持ち、get/set メソッドを提供します。また、doMessage() メソッドをオーバーライドして、「hello,Labex」という文字列を出力します。
com.labexパッケージ内に新しい Java ファイルMessageEN.javaを作成します。- ファイル内で、次のコードを使用して
MessageENクラスを定義します。
package com.labex;
// 英語メッセージ用の IMessage インターフェイスの実装
public class MessageEN implements IMessage {
private String msg; // メッセージを格納する変数
// メッセージを取得するための Getter メソッド
public String getMsg() {
return msg;
}
// メッセージを設定するための Setter メソッド
public void setMsg(String msg) {
this.msg = msg;
}
// IMessage インターフェイスの doMessage メソッドの実装
@Override
public void doMessage() {
// 英語の挨拶メッセージを出力する
System.out.println("Hello, " + msg);
}
}
MessageEN クラスは IMessage インターフェイスを実装し、doMessage() メソッドの実装を提供しており、英語の挨拶メッセージを出力します。
applicationContext.xml 構成ファイルを作成する
このステップでは、上で作成した JavaBeans を構成し、構成内の msg 属性情報を渡すための applicationContext.xml 構成ファイルを作成します。
src/main/resourcesディレクトリ内に新しいファイルapplicationContext.xmlを作成します。- ファイル内に、次の 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"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- 中国語メッセージビーンの構成 -->
<bean id="messageCN" class="com.labex.MessageCN">
<!-- MessageCN ビーンの 'msg' プロパティを "Labex" に設定 -->
<property name="msg" value="Labex"/>
</bean>
<!-- 英語メッセージビーンの構成 -->
<bean id="messageEN" class="com.labex.MessageEN">
<!-- MessageEN ビーンの 'msg' プロパティを "Labex" に設定 -->
<property name="msg" value="Labex"/>
</bean>
</beans>
この構成ファイルは、MessageCN と MessageEN ビーンを設定し、それらの msg プロパティを値 "Labex" で初期化します。
TestGreeting クラスを作成する
このステップでは、TestGreeting クラスを作成し、テスト操作を実行するための testGreeting() と呼ばれるテストメソッドを追加します。
com.labexパッケージ内に新しい Java ファイルTestGreeting.javaを作成します。- ファイル内で、次のコードを使用して
TestGreetingクラスを定義します。
package com.labex;
import org.junit.Test;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class TestGreeting {
@Test
public void testGreeting() {
// XML 構成ファイルから Spring アプリケーションコンテキストを読み込む
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
// コンテキストからメッセージビーンを取得する
IMessage messageCN = (IMessage) context.getBean("messageCN"); // 中国語メッセージビーン
IMessage messageEN = (IMessage) context.getBean("messageEN"); // 英語メッセージビーン
// 中国語メッセージビーンの 'doMessage' メソッドを呼び出す
messageCN.doMessage();
// 英語メッセージビーンの 'doMessage' メソッドを呼び出す
messageEN.doMessage();
context.close();
}
}
TestGreeting クラスは applicationContext.xml ファイルから Spring アプリケーションコンテキストを読み込み、MessageCN と MessageEN ビーンを取得し、その後それらの doMessage() メソッドを呼び出して機能をテストします。
これで、IoC を通じた中英情報切り替えプロジェクトを作成するすべての手順が完了しました。これでテストを実行して、期待される出力を確認できます。
- テストを実行する:
cd ~/project/SpringGreeting/
mvn test
テストは合格し、次の出力が表示されるはずです:
[INFO] -------------------------------------------------------
[INFO] T E S T S
[INFO] -------------------------------------------------------
[INFO] Running com.labex.TestGreeting
你好, Labex
Hello, Labex
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.056 s - in com.labex.TestGreeting
[INFO]
[INFO] Results:
[INFO]
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 11.295 s
[INFO] Finished at: 2024-05-10T12:05:55Z
[INFO] ------------------------------------------------------------------------
まとめ
おめでとうございます!このプロジェクトを完了しました。技術力を向上させるために、LabEx でさらに多くの実験を行って練習してください。



