Spring
[Spring] 프로파일 설정을 통해 샘플데이터 추가하기
퉁그리
2022. 1. 7. 01:58
프로파일 설정
src/main/resources/application.yml
spring:
profiles:
active: local
src/test/resources/application.yml
spring:
profiles:
active: test
이렇게 분리하면 main 소스코드와 테스트 소스 코드 실행시 프로파일을 분리할 수 있다.
@Profile("local")
@Component
@RequiredArgsConstructor
public class InitMember {
private final InitMemberService initMemberService;
@PostConstruct
public void init() {
initMemberService.init();
}
@Component
static class InitMemberService {
@PersistenceContext
EntityManager em;
@Transactional
public void init() {
Team teamA = new Team("teamA");
Team teamB = new Team("teamB");
em.persist(teamA);
em.persist(teamB);
for (int i = 0; i < 100; i++) {
Team selectedTeam = i % 2 == 0 ? teamA : teamB;
em.persist(new Member("member" + i, i, selectedTeam));
}
}
}
}
@Transactional과 @PostConstruct 이 서로 공존할 수 없기 때문에 service을 새로 만들어 관리해야한다.
@profile 어노테이션을 통해 이렇게 분리해서 샘플 데이터를 관리할 수 있다.