Commutation d'informations chinoises-anglaises via IoC

JavaJavaBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce projet, vous allez apprendre à implémenter un simple système de commutation de messages entre le chinois et l'anglais à l'aide du modèle de conception Inversion of Control (IoC) et du framework Spring.

👀 Aperçu

[INFO] -------------------------------------------------------
[INFO] T E S T S
[INFO] -------------------------------------------------------
[INFO] Exécution de com.labex.TestGreeting
你好, Labex
Bonjour, Labex
[INFO] Tests exécutés : 1, Échecs : 0, Erreurs : 0, Ignorés : 0, Temps écoulé : 1,056 s - dans com.labex.TestGreeting
[INFO]
[INFO] Résultats :
[INFO]
[INFO] Tests exécutés : 1, Échecs : 0, Erreurs : 0, Ignorés : 0
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Durée totale : 11,295 s
[INFO] Terminé à : 2024-05-10T12:05:55Z
[INFO] ------------------------------------------------------------------------

🎯 Tâches

Dans ce projet, vous allez apprendre :

  • Comment créer une interface IMessage avec une méthode abstraite doMessage()
  • Comment implémenter l'interface IMessage dans deux classes concrètes : MessageCN et MessageEN
  • Comment configurer les beans de message à l'aide du fichier applicationContext.xml
  • Comment tester la fonctionnalité de commutation de messages dans la classe TestGreeting

🏆 Réalisations

Après avoir terminé ce projet, vous serez capable de :

  • Utiliser le modèle de conception IoC pour découpler l'implémentation de la fonctionnalité de message de l'application principale
  • Utiliser le framework Spring pour configurer et gérer les beans de message
  • Écrire des tests unitaires pour vérifier la fonctionnalité du système de commutation de messages

Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL java(("Java")) -.-> java/ObjectOrientedandAdvancedConceptsGroup(["Object-Oriented and Advanced Concepts"]) java(("Java")) -.-> java/SystemandDataProcessingGroup(["System and Data Processing"]) java(("Java")) -.-> java/ProgrammingTechniquesGroup(["Programming Techniques"]) java/ProgrammingTechniquesGroup -.-> java/method_overriding("Method Overriding") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/classes_objects("Classes/Objects") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/oop("OOP") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/encapsulation("Encapsulation") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/interface("Interface") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/annotation("Annotation") java/SystemandDataProcessingGroup -.-> java/xml_dom4j("XML/Dom4j") subgraph Lab Skills java/method_overriding -.-> lab-300348{{"Commutation d'informations chinoises-anglaises via IoC"}} java/classes_objects -.-> lab-300348{{"Commutation d'informations chinoises-anglaises via IoC"}} java/oop -.-> lab-300348{{"Commutation d'informations chinoises-anglaises via IoC"}} java/encapsulation -.-> lab-300348{{"Commutation d'informations chinoises-anglaises via IoC"}} java/interface -.-> lab-300348{{"Commutation d'informations chinoises-anglaises via IoC"}} java/annotation -.-> lab-300348{{"Commutation d'informations chinoises-anglaises via IoC"}} java/xml_dom4j -.-> lab-300348{{"Commutation d'informations chinoises-anglaises via IoC"}} end

Créer l'interface IMessage

Dans cette étape, vous allez créer l'interface IMessage, qui contient une méthode abstraite appelée doMessage() sans valeur de retour.

  1. Créez un nouveau fichier Java nommé IMessage.java dans le package com.labex.
  2. Dans le fichier, définissez l'interface IMessage avec le code suivant :
package com.labex;

// Interface pour la fonctionnalité de message
public interface IMessage {
    // Signature de la méthode pour afficher un message
    void doMessage();
}

Cette interface définit la structure de base pour toute classe qui veut implémenter la fonctionnalité de message. La méthode doMessage() est une méthode abstraite qui sera implémentée par les classes de message concrètes.

✨ Vérifier la solution et pratiquer

Créer la classe MessageCN

Dans cette étape, vous allez créer la classe MessageCN, qui implémente l'interface IMessage. Cette classe aura un attribut msg et fournira des méthodes get/set. Elle redéfinirá également la méthode doMessage() pour afficher la chaîne "你好,Labex".

  1. Créez un nouveau fichier Java nommé MessageCN.java dans le package com.labex.
  2. Dans le fichier, définissez la classe MessageCN avec le code suivant :
package com.labex;

// Implémentation de l'interface IMessage pour les messages en chinois
public class MessageCN implements IMessage {
    private String msg; // Variable pour stocker le message

    // Méthode getter pour récupérer le message
    public String getMsg() {
        return msg;
    }

    // Méthode setter pour définir le message
    public void setMsg(String msg) {
        this.msg = msg;
    }

    // Implémentation de la méthode doMessage de l'interface IMessage
    @Override
    public void doMessage() {
        // Afficher un message de salutation en chinois
        System.out.println("你好, " + msg);
    }
}

La classe MessageCN implémente l'interface IMessage et fournit l'implémentation de la méthode doMessage(), qui affiche un message de salutation en chinois.

✨ Vérifier la solution et pratiquer

Créer la classe MessageEN

Dans cette étape, vous allez créer la classe MessageEN, qui implémente également l'interface IMessage. Cette classe aura un attribut msg et fournira des méthodes get/set. Elle redéfinirá également la méthode doMessage() pour afficher la chaîne "hello,Labex".

  1. Créez un nouveau fichier Java nommé MessageEN.java dans le package com.labex.
  2. Dans le fichier, définissez la classe MessageEN avec le code suivant :
package com.labex;

// Implémentation de l'interface IMessage pour les messages en anglais
public class MessageEN implements IMessage {
    private String msg; // Variable pour stocker le message

    // Méthode getter pour récupérer le message
    public String getMsg() {
        return msg;
    }

    // Méthode setter pour définir le message
    public void setMsg(String msg) {
        this.msg = msg;
    }

    // Implémentation de la méthode doMessage de l'interface IMessage
    @Override
    public void doMessage() {
        // Afficher un message de salutation en anglais
        System.out.println("Hello, " + msg);
    }
}

La classe MessageEN implémente l'interface IMessage et fournit l'implémentation de la méthode doMessage(), qui affiche un message de salutation en anglais.

✨ Vérifier la solution et pratiquer

Créer le fichier de configuration applicationContext.xml

Dans cette étape, vous allez créer le fichier de configuration applicationContext.xml pour configurer les JavaBeans créés ci-dessus et passer les informations d'attribut msg dans la configuration.

  1. Créez un nouveau fichier nommé applicationContext.xml dans le répertoire src/main/resources.
  2. Dans le fichier, ajoutez la configuration XML suivante :
<?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">

    <!-- Configuration pour le bean de message en chinois -->
    <bean id="messageCN" class="com.labex.MessageCN">
        <!-- Définissez la propriété 'msg' du bean MessageCN sur "Labex" -->
        <property name="msg" value="Labex"/>
    </bean>

    <!-- Configuration pour le bean de message en anglais -->
    <bean id="messageEN" class="com.labex.MessageEN">
        <!-- Définissez la propriété 'msg' du bean MessageEN sur "Labex" -->
        <property name="msg" value="Labex"/>
    </bean>

</beans>

Ce fichier de configuration configure les beans MessageCN et MessageEN et initialise leurs propriétés msg avec la valeur "Labex".

✨ Vérifier la solution et pratiquer

Créer la classe TestGreeting

Dans cette étape, vous allez créer la classe TestGreeting et ajouter une méthode de test appelée testGreeting() pour effectuer l'opération de test.

  1. Créez un nouveau fichier Java nommé TestGreeting.java dans le package com.labex.
  2. Dans le fichier, définissez la classe TestGreeting avec le code suivant :
package com.labex;

import org.junit.Test;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class TestGreeting {

    @Test
    public void testGreeting() {
        // Charger le contexte d'application Spring à partir du fichier de configuration XML
        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");

        // Récupérer les beans de message à partir du contexte
        IMessage messageCN = (IMessage) context.getBean("messageCN"); // Bean de message en chinois
        IMessage messageEN = (IMessage) context.getBean("messageEN"); // Bean de message en anglais

        // Appeler la méthode 'doMessage' sur le bean de message en chinois
        messageCN.doMessage();

        // Appeler la méthode 'doMessage' sur le bean de message en anglais
        messageEN.doMessage();

        context.close();
    }
}

La classe TestGreeting charge le contexte d'application Spring à partir du fichier applicationContext.xml, récupère les beans MessageCN et MessageEN, puis appelle leurs méthodes doMessage() pour tester la fonctionnalité.

Maintenant, vous avez terminé toutes les étapes pour créer le projet de commutation d'informations chinoises-anglaises via IoC. Vous pouvez maintenant exécuter le test et voir la sortie attendue.

  1. Exécuter le test :
cd ~/project/SpringGreeting/
mvn test

Le test devrait réussir et vous devriez voir la sortie suivante :

[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] ------------------------------------------------------------------------
✨ Vérifier la solution et pratiquer

Sommaire

Félicitations ! Vous avez terminé ce projet. Vous pouvez pratiquer plus de laboratoires sur LabEx pour améliorer vos compétences.