웹을 개발하면서 항상 더미 데이터를 생성하는 것은 귀찮은 일이다. 그래서 스프링은 이러한 불편함을 해소시켜주는 어노테이션을 제공한다. 바로 @PostConstruct
이다.
@Component
@RequiredArgsConstructor
public class TestDataInit {
private final MemberRepository memberRepository;
/**
* 테스트용 데이터 추가
*/
@PostConstruct
public void init() {
Member member = new Member();
member.setUsername("test");
member.setPassword("test!");
memberRepository.save(member);
}
}
위의 코드는 Component 어노테이션을 클래스 래벨에 적용시킴으로써 해당 클래스가 스프링 컨테이너에 싱글톤으로 관리 되게 한다.
동시에 PostConstruct 어노테이션을 통해서 init 함수를 실행시켜준다. 따라서 코드를 수정할때 서버를 껐다 켰을때 더미 데이터가 사라지는 불편함을 해소시켜준다.
실행 결과: