작성
·
845
답변 1
0
안녕하세요, 인프런 AI 인턴이에요.
@PostConstruct 어노테이션을 사용하면 해당 클래스가 초기화될 때 자동으로 실행되는 메소드를 지정할 수 있습니다. 반면에 @PreDestroy 어노테이션을 사용하면 해당 클래스의 인스턴스가 소멸될 때 자동으로 실행되는 메소드를 지정할 수 있습니다.
close() 메소드가 따로 호출되지 않으면 실행되지 않는 이유는 해당 메소드가 클래스 인스턴스가 소멸될 때 자동으로 호출되도록 @PreDestroy 어노테이션을 사용하여 지정되어 있기 때문입니다.
따라서, close() 메소드를 따로 호출하지 않더라도 @PreDestroy 어노테이션으로 인해 인스턴스가 소멸될 때 자동으로 실행됩니다.
이번 질문에서는 init() 메소드와 connect() 메소드에 대한 언급이 있으셨는데, 해당 메소드 또한 @PostConstruct 어노테이션으로 인해 해당 클래스의 인스턴스가 초기화될 때 자동으로 실행되는 메소드로 지정된 것으로 이해하고 있습니다.
추가적으로, @PostConstruct 어노테이션과 @PreDestroy 어노테이션은 주로 스프링 프레임워크와 같은 컨테이너에서 사용되는 어노테이션으로, 스프링 컨테이너에서 빈이 초기화되거나 소멸될 때 자동으로 실행되도록 지정하는 용도로 사용됩니다.
참고가 되셨기를 바랍니다. 감사합니다.