Explication détaillée du cycle de vie du printemps :
1. Initialisation et destruction du @Bean
1.1 Le cycle de vie d'un bean :
Le processus de création du bean-----initialisation-----destruction
1.2 Le cycle de vie d'un conteneur -haricot géré :
Nous pouvons personnaliser les méthodes d'initialisation et de destruction : le conteneur appelle nos méthodes d'initialisation et de destruction personnalisées lorsque le bean atteint le cycle de vie actuel.
Constructeur :
Instance unique : Initialisé à la création du conteneur
Multi-instance : Créer un objet à chaque fois qu'il est récupéré
BeanPostProcessor.postProcessBeforeInitialization
Initialisation :
L'objet est créé et attribué, et la méthode d'initialisation est appelée. BeanPostProcessor.postProcessAfterInitialization
Destruction :
instance unique : lorsque le conteneur est fermé
plusieurs instances : le conteneur ne gérera pas ce bean ; le conteneur n'appellera pas la méthode de destruction
1. méthodes de destruction
Spécifiez la méthode d'initialisation et la méthode de destruction via @Bean ;
2 Implémentez InitializingBean via Bean (définir la logique d'initialisation)
DisposableBean (définir la logique de destruction)
3. spécification :
@ PostConstruct : Une fois le bean créé et l'attribution des attributs terminée
@PreDestroy : Le travail de nettoyage est appelé avant la destruction du conteneur et du bean
Le code est le suivant suit :
a. L'utilisation de initMethod et destroyMethod
MainConfig.java
@Configuration@ComponentScan("com.zero.life")public class MainConfig {// @Scope("prototype") @Bean(initMethod = "init",destroyMethod = "destroy") public Phone phone(){ return new Phone(); }} Phone.java public class Phone { public Phone() { System.out.println("Phone初始化构造。。。"); } public void init(){ System.out.println("Phone 初始化方法。。。。"); } public void destroy(){ System.out.println("Phone 销毁方法。。。"); }}
b. 🎜>c. Utilisation du post-processeur @PostConstruct et @PreDestroy
@Componentpublic class Android implements InitializingBean,DisposableBean { public Android() { System.out.println("android constructor......."); } @Override public void destroy() throws Exception { System.out.println("android destroy........"); } @Override public void afterPropertiesSet() throws Exception { System.out.println("android afterPropertiesSet........"); }}
1. postProcessBeforeInitialization : fonctionne avant l'initialisation 2. postProcessAfterInitialization : fonctionne après l'initialisation rr
Tutoriel recommandé : "tutoriel vidéo Java
"
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!