> Java > java지도 시간 > 본문

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

王林
풀어 주다: 2023-04-18 09:13:44
앞으로
1455명이 탐색했습니다.

    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으로 문의하세요.
    인기 튜토리얼
    더>
    최신 다운로드
    더>
    웹 효과
    웹사이트 소스 코드
    웹사이트 자료
    프론트엔드 템플릿