스프링/6. 스프링 DB-2

17. 스프링부트의 임베디드 DB

sdafdq 2023. 10. 9. 15:44

사실 데이터소스에 대해 별도의 설정을 주지 않으면 스프링부트는 자동으로 임베디드 DB를 만들어 준다.

 

@Import(JdbcTemplateV3Config.class)
@SpringBootApplication(scanBasePackages = "hello.itemservice.web")
public class ItemServiceApplication {

	public static void main(String[] args) {
		SpringApplication.run(ItemServiceApplication.class, args);
	}

	@Bean
	@Profile("local")
	public TestDataInit testDataInit(ItemRepository itemRepository) {
		return new TestDataInit(itemRepository);
	}

/*	@Bean
	@Profile("test")
	public DataSource dataSource(){
		DriverManagerDataSource dataSource = new DriverManagerDataSource();
		dataSource.setDriverClassName("org.h2.Driver");
		dataSource.setUrl("jdbc:h2:mem:db;DB_CLOSE_DELAY=-1");
		dataSource.setUsername("asdf");
		dataSource.setPassword("");
		return dataSource;
	}*/
}

기존의 임베디드 DB 설정 없에버림.

 

spring.profiles.active=test

#spring.datasource.url=jdbc:h2:tcp://localhost/./testcase
#spring.datasource.username=sa
#spring.datasource.password=1234

test/resources/application.properties의 dataSource 설정도 다 주석처리 함(여기서 #은 주석임)

 

이렇게 하면 우리가 딱히 애플리케이션에 DB에 대한 정보를 알려주지 않았다. (물론 main에서 실행하면 main의 application.properties를 참조함.)

 

이러면 스프링부트가 자동으로 임베디드 DB를 만들어 그걸 데이터소스로 넣어준다.

그럼 우리가 기존에 만들었던 schema.sql은 자동으로 가겠고,

 

여튼 이렇게 다 자동으로 해준다는 거다.

 

 

 

이렇게 많이 쓴다고 하는데..

 

뭐랄까 나는 그래도 기존의 따로 격리해서 사용했던 DB 방식이 마음에 든다.

DB의 모양새를 직접 볼 수 있기 때문에 라고 해야 하려나.

여튼 마음만 먹으면 commit 시켜봐서 직접 보고 이렇게 유연하게 확인이 가능하기 때문이다.

 

 

'스프링 > 6. 스프링 DB-2' 카테고리의 다른 글

19. MyBatis 설정  (0) 2023.10.09
18. MyBatis  (0) 2023.10.09
16. 임베디드 모드 DB  (0) 2023.10.09
15. @Transactional로 테스트  (0) 2023.10.09
14. 데이터 롤백  (0) 2023.10.09