반응형
💋 오늘 공부한 내용
- 스프링 더미데이터 추가 관련해서 새로운 것을 알게 되었다.
- 스프링 빈으로 등록된 클래스의 메서드에 @EventListener(ApplicationReadyEvent.class)라고 된 어노테이션을 붙여주면, 컨테이너 초기화 직후에 해당 메서드를 실행한다.
- 빈 @PostConstruct와 기능은 비슷하지만, event listener를 사용하는 방법은 타이밍 이슈가 발생하지 않기 때문에 더 안전하다.
- 더미 데이터가 추가될 상황이 있고, 추가되지 않으면 되는 상황이 있다. 빈으로 등록할 지 여부를 상황(프로필)에 따라서 설정할 수 있는데, 이 때 @Profile 을 사용하면 된다.
- 방법도 간단
- 빈을 수동으로 등록하면서, 아래와 같이 @Profile 어노테이션을 추가하면 된다.
- application properties에서 프로필을 설정할 수 있는데, spring.profiles.active=local라고 넣어놓으면 아래 클래스는 빈으로 등록되고, local이 아닌 다른 문자를 적어놓으면 등록되지 않는다. (기본값은 default)
- 이 프로필을 사용하면 로컬에서만 더미데이터를 추가하도록 사용할 수 있다.
- 테스트 코드에서 더미데이터로 인한 테스트의 의존성을 완전히 배제하고 싶다면, 별도로 application.properties 파일을 만들어서, profile 이름을 바꿔놓으면 된다.
- 스프링 빈으로 등록된 클래스의 메서드에 @EventListener(ApplicationReadyEvent.class)라고 된 어노테이션을 붙여주면, 컨테이너 초기화 직후에 해당 메서드를 실행한다.
@Bean
@Profile("local")
public TestDataInit testDataInit(ItemRepository itemRepository) {
return new TestDataInit(itemRepository);
}
💋 감정 회고
- 레벨3, 4동안 진행할 팀이 나왔다. 재밌을 것 같다.
💋 오늘의 포스팅
반응형
반응형
'TIL > 2023' 카테고리의 다른 글
[TIL] 23.06.28 (0) | 2023.06.28 |
---|---|
[TIL] 23.06.22 (0) | 2023.06.22 |
[TIL] 23.06.20 (0) | 2023.06.20 |
[TIL] 23.06.16 (0) | 2023.06.17 |
[TIL] 23.06.14 (0) | 2023.06.14 |