@PostConstruct

박연주·2023년 8월 20일
0

@PostConstruct

  • 의존성 주입이 이루어진 후 초기화를 수행하는 메서드
  • @PostConstruct가 붙은 메서드는 클래스가 service를 수행하기 전에 발생, 이 메서드는 다른 리소스에서 호출되지 않는다해도 수행됨

장점

  1. 생성자(일반)가 호출 되었을 때, 빈(bean)은 아직 초기화 되지 않은 경우
    (예를 들어, 주입된 의존성이 없음)
    @PostConstruct를 사용하면, 빈(bean)이 초기화 됨과 동시에 의존성을 확인할 수 있다.
  1. bean lifecycle에서 오직 한 번만 수행된다는 것을 보장할 수 있다. (WAS가 올라가면서 bean이 생성될 때 딱 한 번 초기화함)
    -> @PostConstruct를 사용하면 bean이 여러번 초기화되는 것을 방지할 수 있다.

@GetMapping("/members_dto")
public Page<MemberDto> listDto(Pageable pageable) {
    return memberRepository.findAll(pageable).map(MemberDto::new);
}


@PostConstruct
public void init() {
    for (int i = 0; i < 30; i++) {
        memberRepository.save(new Member("user" + i, i));
    }
}
    
  • 페이징 처리를 확인하기 위해 DB에 데이터를 미리 생성






Reference

https://zorba91.tistory.com/223

profile
하루에 한 개념씩

0개의 댓글