Spring Boot
[SPRING] 더미데이터를 만들어보장
재원쓰
2023. 1. 10. 15:09
더미데이터 추가하는 클래스 InitDb를 application이 있는 디렉토리 위치에 만든다.
뼈대를 그려보자.
InitDb 안에 static 클래스로 InitService를 만들고 그안에 데이터를 추가해주는 dbInit1 메서드를 만든다.
그리고 각각 빈으로 등록해준다.
@Component
public class InitDb {
@Component
static class InitService {
public void dbInit1(){
}
}
}
더미 데이터를 짜고 EntityManager에 persist한다.
@Component
public class InitDb {
@Component
static class InitService {
@PersistenceContext
EntityManager em;
@Transactional
public void dbInit1(){
Member member = new Member();
member.setName("userA");
member.setAddress(new Address("서울","1","1111"));
em.persist(member);
Book book1 = new Book();
book1.setName("jpa1 Book");
book1.setPrice(10000);
book1.setStockQuantity(100);
em.persist(book1);
Book book2 = new Book();
book2.setName("jpa2 Book");
book2.setPrice(20000);
book2.setStockQuantity(100);
em.persist(book2);
}
}
}
이제 애플리케이션 로딩 시점에 dbInit1을 실행시켜주는 코드를 추가한다.
@Component
@RequiredArgsConstructor // 👈추가
public class InitDb {
private final InitService initService; // 👈추가
@PostConstruct // 👈 아래 메서드 추가
public void init(){
initService.dbInit1();
}
@Component
static class InitService {
@PersistenceContext
private EntityManager em;
@Transactional
public void dbInit1(){
... 더미데이터 추가 코드 ...
}
}
}
이렇게 구축한 상태로 서버를 실행시킨 후 h2콘솔을 확인해본다.
잘 들어와 있는 것을 확인할 수 있다.