Java

@PostConstruct, @PreDestroy

2022. 8. 24. 09:22
목차
  1. @PostConstruct
  2. @PreDestroy
728x90

@PostConstruct

Spring은 빈 속성 초기화 직후에 @PostConstruct로 주석이 달린 메서드를 한 번만 호출한다.

(초기화할 항목이 없는 경우에도 메서드 실행)

@PostConstruct가 있는 메서드는 static 할 수 없다.

 

기본 사용자를 만들기 위해 사용하는 예시)

@Component
public class DbInit {
    
    @Autowired
    private UserRepository userRepository;
    
    @PostConstruct
    private void postConstruct() {
        User admin = new User("admin", "admin password");
        User normalUser = new User("user", "user password");
        userRepository.save(admin, normalUser);
    }
}
    @PostConstruct
    private void init() {
        restTemplate.setErrorHandler(new ResponseErrorHandler() {
            @Override
            public boolean hasError(ClientHttpResponse response) {
                return false;
            }

            @Override
            public void handleError(ClientHttpResponse response) {
            }
        });
    }

쓰면서 이런 예시를 보고 @PostConstruct에 대해 조사해 본 건데 아직은 좀 헷갈리는 것 같다.

 

@PreDestroy

Spring이 애플리케이션 컨텍스트에서 빈을 제거하기 직전에 한 번만 실행된다.

@PostConstruct와 마찬가지로 static할 수 없다.

@Component
public class UserRepository {
    
    private DbConnection dbConnection;
    @PreDestroy
    public void preDestroy() {
         dbConnection.close();
    }
}

 

 

@PostConstruct와 @PreDestroy 모두 Java EE의 일부이다. Java EE는 Java9에서 더이상 사용되지 않고, Java11에서 제거 되었기 때문에 사용하려면 종속성을 추가해야 한다.


Reference

https://www.baeldung.com/spring-postconstruct-predestroy

728x90

'Java' 카테고리의 다른 글

[Java] 리플렉션 공부  (0) 2022.10.25
ObjectMapper  (0) 2022.08.24
UnrecognizedPropertyException  (0) 2022.08.23
JsonNode to Object  (0) 2022.08.23
mac 자바 8 설치  (0) 2022.08.19
  1. @PostConstruct
  2. @PreDestroy
'Java' 카테고리의 다른 글
  • [Java] 리플렉션 공부
  • ObjectMapper
  • UnrecognizedPropertyException
  • JsonNode to Object
mean-ji
mean-ji
저년차 기록들mean-ji 님의 블로그입니다.
mean-ji
저년차 기록들
mean-ji
전체
오늘
어제
  • 분류 전체보기 (104)
    • 소개 (1)
    • Server (25)
      • DevOps (9)
      • Database (4)
    • Spring (11)
    • Spring Boot (0)
    • Java (6)
    • Kotlin (3)
    • Vue.js (12)
      • Nuxt (12)
    • Node.js (3)
      • Express (2)
    • Python (9)
      • Flask (2)
    • Git (9)
    • IDE & Tool (4)
    • TIL (16)
    • 생각 (2)
    • 토스 (3)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

최근 댓글

최근 글

hELLO · Designed By 정상우.
mean-ji
@PostConstruct, @PreDestroy
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.