이 포스트는 김영한님의 ‘스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술’을 수강하고 작성하였습니다.

build.gradle에 의존성 추가

build.gradle 파일을 열고 dependencies 항목 옆에 있는 ‘스타터 편집…’ 이라는 버튼을 클릭하면 아래와 같은 창이 나온다.

add_dependencies

검색창에 ‘jdbc’를 입력하고, ‘JDBC API’와 ‘H2 Database’에 체크를 해서 확인 버튼을 클릭하면 자동으로 의존성 추가가 이루어진다.

의존성 추가를 한 후에는 build.gradle을 다시 로드해준다.

application.properties에 datasource 정보 작성

이제 application.properties 파일을 열어서 아래와 같이 작성한다.

spring.datasource.url=jdbc:h2:tcp://localhost/~/test
spring.datasource.driver=org.h2.Driver
spring.datasource.username=sa
  • spring.datasource.url: 연결하고자 하는 데이터베이스의 jdbc 주소이다. 이는 데이터베이스 연결할 때 썼던 jdbc:h2... 주소로 정의했다.
  • spring.datasource.driver: 사용할 데이터베이스 드라이버를 정의한다. 데이터베이스 엔진이 h2이기 때문에 h2 드라이버로 정의했다. 이걸 위해 build.gradle에서 ‘H2 Database’ 의존성을 추가한 것이다.

JDBCMemberRepository 클래스 추가

repository/JDBCMemberRepository.java 파일을 만들어 MemoryMemberRepository.java에 정의된 것처럼 save, find 등의 함수를 정의한다.

해당 내용은 길기도 하고, 요즘은 잘 안 쓰는 방식으로 정의한 거라 링크로 남겨두도록 하겠다.

> JDBCMemberRepository 보러가기

SpringConfig 수정

원래 SpringConfig에서 스프링 빈으로 MemberRepositoryMemoryMemberRepository로 지정했었는데, 이제 MemoryMemberRepository 대신 JDBCMemberRepository로 갈아끼우도록 하겠다.

// SpringConfig

package hello.hellospring;

// import 생략

@Configuration
public class SpringConfig {

    private final DataSource dataSource;

    public SpringConfig(DataSource dataSource) {
        this.dataSource = dataSource;
    }

    @Bean
    public MemberService memberService() {
        return new MemberService(memberRepository());
    }

    @Bean
    public MemberRepository memberRepository() {
        return new JDBCMemberRepository(dataSource);
    }
}

위의 코드를 보면 application.properties에 정의한 데이터 소스의 내용을 가져올 수 있도록 DataSource 의존성을 주입했다.

또한 MemberRepositoryJDBCMemberRepository를 정의했다.

결과 확인

이제 스프링부트를 실행해서 localhost:8080/members로 들어가보면 다음과 같은 화면이 뜬다.

result

내가 h2 데이터베이스에 저장한 값이 정상적으로 보이는 것을 확인할 수 있다.

댓글남기기