본문 바로가기
유데미 스프링

PostConstruct, PreDestroy

by hoshi03 2024. 3. 20.

@PostConstruct - 의존성 주입이 이루어진 후 실행되는 메서드에 사용, db에서 데이터 불러올때 등에 사용

@PreDestroy - 빈이 삭제되기 전에 사용, 종료 전에 데이터 저장할 때 등에 사용

package udemy.learnspring.singleton;

import jakarta.annotation.PostConstruct;
import jakarta.annotation.PreDestroy;
import org.springframework.beans.factory.config.ConfigurableBeanFactory;
import org.springframework.context.annotation.*;
import org.springframework.stereotype.Component;

@Component
class SomeClass{
    private SomeDependency someDependency;


    public SomeClass(SomeDependency someDependency){
        super();
        this.someDependency = someDependency;
        System.out.println("dependency ready");
    }

    @PostConstruct
    public void initialize(){
        someDependency.getReady();
    }

    @PreDestroy
    public void cleanup(){
        System.out.println("Clean up");
    }
}

@Component
class SomeDependency{
    public void getReady(){
        System.out.println("some logic using dependency");
    }
}


@Configuration
@ComponentScan
public class SingletonClass {
    public static void main(String[] args) {
        AnnotationConfigApplicationContext context
                = new AnnotationConfigApplicationContext(SingletonClass.class);

        String[] names = context.getBeanDefinitionNames();
        for (String x : names) System.out.println(x);

        context.close();

    }
}

생성자 초기화 - @postconstruct -                                                  어플리케이션 종료 전 콜백으로 @predestroy 순으로 출력

 

'유데미 스프링' 카테고리의 다른 글

스프링 부트 시작하기  (0) 2024.03.30
빈 관련 어노테이션  (0) 2024.03.20
싱글톤, 프로토타입  (0) 2024.03.20
지연 초기화, 즉시 초기화  (0) 2024.03.20
스프링 용어 정리  (0) 2024.02.25