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 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 {
}
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())
}
}
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 {
...
}
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