>  기사  >  Java  >  Java Spring Bean 라이프사이클 관리 분석 예시

Java Spring Bean 라이프사이클 관리 분석 예시

王林
王林앞으로
2023-04-18 09:13:441431검색

    Spring Bean의 Life Cycle 관리

    1. Spring Bean의 Life Cycle

    Java Spring Bean 라이프사이클 관리 분석 예시

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

    2 @Bean 매개변수(initMethod, destroyMethod)를 통해 Bean의 초기화 및 파기 방법을 지정합니다. 프로젝트 구조

    Java Spring Bean 라이프사이클 관리 분석 예시2, Person

    public class Person {
        public Person(){
            System.out.println("Person 创建了...");
        }
        public void init(){
            System.out.println("Person 初始化了...");
        }
        public void destroy(){
            System.out.println("Person 被销毁了...");
        }
    }
    3, Bean 등록 구성 클래스(단일 인스턴스)
    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();
        }
    }
    4, 테스트 클래스
    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();
        }
    }
    5, 테스트 결과

    Java Spring Bean 라이프사이클 관리 분석 예시6, Bean 등록 구성 클래스(다중 인스턴스) )

    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();
        }
    }
    7. 테스트 결과

    Java Spring Bean 라이프사이클 관리 분석 예시3. Bean 구현 인터페이스 InitializingBean, DisposableBean

    2. Bean 등록 구성 클래스

    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 被销毁了...");
        }
    }
    3. . 전달된 주석 @PostConstruct 및 @PreDestroy
    import com.dashu.bean.Person;
    import org.springframework.context.annotation.*;
    @Configuration
    public class BeanConfig {
        @Bean
        public Person person(){
            return new Person();
        }
    }
    1, Person
    @PostConstruct:标注在Bean的初始化方法上
    @PreDestroy:标注在Bean的销毁方法上
    2, 테스트 결과

    Java Spring Bean 라이프사이클 관리 분석 예시

    5. BeanPostProcessor 인터페이스를 사용하여 클래스(포스트 프로세서)

    를 구현합니다.
    2. Person

    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 被销毁了...");
        }
    }
    Java Spring Bean 라이프사이클 관리 분석 예시3. Bean 등록 구성 클래스

    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 被销毁了...");
        }
    }

    4. BeanPostProcessor 구현 클래스(후처리기)

    import org.springframework.context.annotation.*;
    @Configuration
    @ComponentScan({"com.dashu"})
    public class BeanConfig {
    }
    5.

    위 내용은 Java Spring Bean 라이프사이클 관리 분석 예시의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

    성명:
    이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제