[JAVA] Comment définir et utiliser un profil avec une configuration basée sur des annotations dans le framework Spring

Spring DI

Configuration

Dans le framework Spring, un fichier de configuration appelé Configuration est passé au conteneur DI et "Renvoyer cette instance dans un tel cas" est défini. Il existe trois types de fichiers de configuration.

La configuration basée sur les annotations est décrite ci-dessous.

Configuration basée sur les annotations

@Configuration Indique qu'il s'agit d'une classe de configuration.

AppConfig


package com.example;

@Configuration
public class AppConfig {

}

@Component Enregistrez la classe en tant que bean à gérer par le conteneur DI.

User


package com.example;

@Component
public class User {

  public String getName(){
    ...
  }

}

@ComponentScan Scannez la classe avec @Component et enregistrez-la dans DI en tant que bean. La cible de l'analyse peut être spécifiée en tant que package. Les paramètres de la classe AppConfig mentionnés précédemment sont les suivants.

Configuration


package com.example;

@Configuration
@ComponentScan("com.example")
public class AppConfig {

}

Exemple de code de configuration basée sur les annotations

Si vous utilisez le conteneur DI avec les annotations ci-dessus, le code sera le suivant.

DemoIoC


package com.example;

public class DemoIoC {
  public static void main(String args[]){

    //Construire un conteneur DI et transmettre un fichier de configuration
    AnnotationConfigApplicationContext context =
                      new AnnotationConfigApplicationContext(AppConfig.class);

    //Obtenez Bean
    User user = context.getBean(User.class);
    System.out.println(User.getName())
  }
}

Paramètres de profil

Le framework Spring vous permet de regrouper les configurations et de les gérer en tant que profils. Par exemple, la configuration pour le développement, la configuration pour les tests et la configuration pour les produits peuvent être gérées séparément et la configuration peut être facilement commutée.

@Profile Définissez le profil. Modifiez la hiérarchie des classes d'utilisateurs comme suit et définissez le profil.

User


package com.example;

public interface User {
  public String getName();
}

UserDummy


package com.example;

@Component
@Profile("dev") //Configurer un profil avec le nom dev
public class UserDummy implements User {
  ...
}

UserMaster


package com.example;

@Component
@Profile("test") //Configurer un profil avec le test de nom
public class UserImpl implements User {
  ...
}

Exemple d'utilisation du profil

Définissez un profil et utilisez la hiérarchie de classes d'utilisateurs ci-dessus.

DemoIoC


package com.example;

public class DemoIoC {
  public static void main(String args[]){

    //Construire un conteneur DI
    //Définir dev comme profil
    AnnotationConfigApplicationContext context =
                      new AnnotationConfigApplicationContext();
    context.register(AppConfig.class);
    context.getEnvironment().addActiveProfile("dev");
    context.refresh();

    //Obtenez Bean
    //L'implémentation de l'utilisateur est UserDummy
    User user = context.getBean(User.class);
    System.out.println(User.getName())
  }
}

Recommended Posts

Comment définir et utiliser un profil avec une configuration basée sur des annotations dans le framework Spring
Comment utiliser Lombok au printemps
Comment appeler et utiliser l'API en Java (Spring Boot)
Comment configurer et utiliser kapt
Comment utiliser CommandLineRunner dans Spring Batch of Spring Boot
Comment utiliser le référentiel de jobs en mémoire avec Spring Batch
Comment utiliser StringBurrer et Arrays.toString.
Comment utiliser EventBus3 et ThreadMode
Remarques sur l'utilisation de Spring Data JDBC
Comment configurer Spring Boot + PostgreSQL
Comment utiliser l'égalité et l'égalité (comment utiliser l'égalité)
Comment utiliser InjectorHolder dans OpenAM
Comment utiliser ModelMapper (Spring boot)
Comment utiliser les classes en Java?
Comment définir Lombok dans Eclipse
Prise en charge multilingue de Java Comment utiliser les paramètres régionaux
Comment utiliser OrientJS et OrientDB ensemble
Comment utiliser BootStrap avec Play Framework
Comment inclure Spring Tool dans Eclipse 4.6.3?
Comment utiliser Docker dans VSCode DevContainer
Comment utiliser MySQL dans le didacticiel Rails
Comment utiliser les variables d'environnement dans RubyOnRails
Comment utiliser les méthodes substring et substr
Comprendre en 5 minutes !! Comment utiliser Docker
Comment utiliser credentials.yml.enc introduit à partir de Rails 5.2
Comment utiliser @Builder et @NoArgsConstructor ensemble
Comment utiliser ExpandableListView dans Android Studio
Comment obtenir la valeur du paramètre (valeur de la propriété) à partir de la base de données dans Spring Framework
[Java] Comment utiliser la classe FileReader et la classe BufferedReader
Comment utiliser MyBatis2 (iBatis) avec Spring Boot 1.4 (Spring 4)
[Rails] Comment utiliser les boîtes de sélection dans Ransack
Comment utiliser h2db intégré avec Spring Boot
[Ruby] Comment utiliser la méthode gsub et la sous-méthode
Comment utiliser le framework Java avec AWS Lambda! ??
Comment utiliser les attributs de session Spring Boot (@SessionAttributes)
Comment utiliser le contrôle segmenté et les points à noter
Comment ajouter un chemin de classe dans Spring Boot
Comment configurer et utiliser jEnv (Mac)
Définir l'image de profil d'un utilisateur à l'aide de CarrierWave
Comment utiliser la portée et le traitement des passes (servist)
Comment utiliser JQuery dans Rails 6 js.erb
J'ai essayé de lier JavaFX et Spring Framework.
Comment se lier avec un fichier de propriétés dans Spring Boot
Comment définir plusieurs orm.xml dans Spring4, JPA2.1
[Rails] Comment utiliser PostgreSQL dans l'environnement Vagrant
Spring Boot - Comment définir le délai d'expiration de la session
[Java] Comment utiliser la classe Calendar et la classe Date
Comment utiliser ToolBar avec la super marge Part1 Définir les caractères et changer les couleurs
Comment définir des variables d'environnement dans le fichier de propriétés de l'application Spring Boot
[Spring Framework] Division de la configuration
[Ruby] Comment utiliser la sortie standard dans le branchement conditionnel
Comment régler l'heure d'affichage sur l'heure japonaise dans les rails
Comment définir l'injection de dépendance Spring Boot (DI)
Comment utiliser Map
Comment utiliser rbenv
Comment utiliser fields_for
Comment utiliser java.util.logging
Comment utiliser la carte