ㅅㅇ

[Spring boot] @PostConstruct 어노테이션 본문

SW_STUDY/SpringBoot

[Spring boot] @PostConstruct 어노테이션

SO__OS 2023. 3. 8. 20:08

1.  @PostConstruct 란?

의존성 주입이 이루어진 후 초기화를 수행하게 하며, @PostConstruct가 붙은 메서드는 클래스가 service를 수행하기 전에 발생한다. 이 메서드는 다른 리소스에서 호출되지 않는다는 것을 유심히 볼 필요가 있다.

2.  사용 이유

  • 생성자(일반)가 호출 되었을 때, bean은 아직 초기화 되지 않은 상태이다. 이때, @PostConstruct를 사용하면, 빈(bean)이 초기화 됨과 동시에 의존성을 확인할 수 있다. bean 초기화가 완료된 후 수행된다는 것이 보장되므로 의존성 주입이 완료된 것을 알 수 있다.
  • 클래스 내에 @Autowired를 붙여서 객체를 사용할 때, 생성자가 필요하다면 이때, @PostConstruct를 사용되면 좋을 것이다.
  • bean 의 생애주기에서 오직 한 번만 수행된다는 것을 보장한다. 따라서 bean이 여러 번 초기화되는 걸 방지할 수 있다.

 

@Service
public class AccountService {
 
    @Autowired
		private AccountRepository accountRepository; 
 
    @PostConstruct
		public void signUp(Account account) {			
			accountRepository.save(account);    
		}