Maison > Java > javaDidacticiel > le corps du texte

Exemple d'analyse de la gestion du cycle de vie de Java Spring Bean

王林
Libérer: 2023-04-18 09:13:44
avant
1457 Les gens l'ont consulté

    Gestion du cycle de vie de Spring Bean

    1. Cycle de vie de Spring Bean

    Exemple d'analyse de la gestion du cycle de vie de Java Spring Bean

    通过以下方式来指定Bean的初始化和销毁方法,
    当Bean为单例时,Bean归Spring容器管理,Spring容器关闭,就会调用Bean的销毁方法
    当Bean为多例时,Bean不归Spring容器管理,Spring容器关闭,不会调用Bean的销毁方法
    Copier après la connexion

    2 Spécifiez la méthode d'initialisation et de destruction du Bean via les paramètres @Bean (initMethod, destroyMethod)

    1. Structure du projet

    Exemple d'analyse de la gestion du cycle de vie de Java Spring Bean

    2, Personne
    public class Person {
        public Person(){
            System.out.println("Person 创建了...");
        }
        public void init(){
            System.out.println("Person 初始化了...");
        }
        public void destroy(){
            System.out.println("Person 被销毁了...");
        }
    }
    Copier après la connexion
    3, classe de configuration d'enregistrement du bean (instance unique)
    import com.dashu.bean.Person;
    import org.springframework.context.annotation.*;
    @Configuration
    public class BeanConfig {
        @Bean(initMethod = "init",destroyMethod = "destroy")
        public Person person(){
            return new Person();
        }
    }
    Copier après la connexion
    4, classe de test
    import com.dashu.bean.Person;
    import com.dashu.config.BeanConfig;
    import org.springframework.context.annotation.AnnotationConfigApplicationContext;
    public class Main {
        public static void main(String[] args) {
            //加载配置类获取容器
            AnnotationConfigApplicationContext annotationConfigApplicationContext = new AnnotationConfigApplicationContext(BeanConfig.class);
            //获取Bean
            Person bean = annotationConfigApplicationContext.getBean(Person.class);
            //关闭容器
            annotationConfigApplicationContext.close();
        }
    }
    Copier après la connexion
    5, résultats des tests

    Exemple d'analyse de la gestion du cycle de vie de Java Spring Bean

    6, classe de configuration d'enregistrement du bean (plusieurs Instances))
    import com.dashu.bean.Person;
    import org.springframework.context.annotation.*;
    @Configuration
    public class BeanConfig {
        @Scope("prototype")
        @Bean(initMethod = "init",destroyMethod = "destroy")
        public Person person(){
            return new Person();
        }
    }
    Copier après la connexion
    7. . Annotation réussie @PostConstruct et @PreDestroy
    import org.springframework.beans.factory.DisposableBean;
    import org.springframework.beans.factory.InitializingBean;
    public class Person implements InitializingBean, DisposableBean {
        public Person(){
            System.out.println("Person 创建了...");
        }
        @Override
        public void afterPropertiesSet() throws Exception {
            System.out.println("Person 初始化了...");
        }
        @Override
        public void destroy() throws Exception {
            System.out.println("Person 被销毁了...");
        }
    }
    Copier après la connexion

    1, PersonExemple d'analyse de la gestion du cycle de vie de Java Spring Bean

    import com.dashu.bean.Person;
    import org.springframework.context.annotation.*;
    @Configuration
    public class BeanConfig {
        @Bean
        public Person person(){
            return new Person();
        }
    }
    Copier après la connexion

    2, Résultats des tests

    5 Utilisez l'interface BeanPostProcessor pour implémenter la classe (post-processeur)
    1.

    2. PersonneExemple d'analyse de la gestion du cycle de vie de Java Spring Bean

    @PostConstruct:标注在Bean的初始化方法上
    @PreDestroy:标注在Bean的销毁方法上
    Copier après la connexion

    3. Classe de configuration d'enregistrement Bean

    import javax.annotation.PostConstruct;
    import javax.annotation.PreDestroy;
    public class Person {
        public Person(){
            System.out.println("Person 创建了...");
        }
        @PostConstruct
        public void init(){
            System.out.println("Person 初始化了...");
        }
        @PreDestroy
        public void destroy(){
            System.out.println("Person 被销毁了...");
        }
    }
    Copier après la connexion

    4. Classe d'implémentation de BeanPostProcessor (post-processeur)
    import org.springframework.stereotype.Component;
    import javax.annotation.PostConstruct;
    import javax.annotation.PreDestroy;
    @Component
    public class Person {
        public Person(){
            System.out.println("Person 创建了...");
        }
        @PostConstruct
        public void init(){
            System.out.println("Person 初始化了...");
        }
        @PreDestroy
        public void destroy(){
            System.out.println("Person 被销毁了...");
        }
    }
    Copier après la connexion
    5.

    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!

    Étiquettes associées:
    source:yisu.com
    Déclaration de ce site Web
    Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
    Tutoriels populaires
    Plus>
    Derniers téléchargements
    Plus>
    effets Web
    Code source du site Web
    Matériel du site Web
    Modèle frontal