자바/Spring

spring boot DB테스트, jdbcTemplate

끄적끄적 2022. 9. 16. 16:43

spring boot에서 JdbcTemplate 사용

implementation 'org.springframework.boot:spring-boot-starter-jdbc'

위와 같이 jdbc 를 추가하고, @Configuration에 Bean을 추가하면 된다.

    private final DataSource dataSource;

    @Bean
    public ItemRepository itemRepository() {
        return new JdbcTemplateItemRepository(dataSource);
    }

실제 사용은 아래와 같이

public class JdbcTemplateItemRepositoryV1 implements ItemRepository {

    private final JdbcTemplate template;

    public JdbcTemplateItemRepositoryV1(DataSource dataSource) {
        this.template = new JdbcTemplate(dataSource);
    }

 

테스트코드에서 DB테스트

test/resources 에 별도 application.properties 추가해서, Test시에 사용할 DB정보 셋팅

테스트 DB는 h2를 embedded 로 이용하면, 별도로 DB가 구동되어 있지 않아도 테스트가 가능하다. (test에 별도 config만 분리해두면, datasource 부분은 주석으로 해 두어도, 자동으로 임베디드로 생성해 주기도 한다.)

spring.profiles.active=test
spring.datasource.url=jdbc:h2:mem:db;DB_CLOSE_DELAY=-1
spring.datasource.username=sa
spring.datasource.password=

test/resources/schema.sql 에 초기화할 DDL 문 등을 넣어놓으면 기동시 자동 생성(디폴트 설정이 EMBEDED일때 동작)

반응형