[spring] 스프링 JdbcTemplate (스프링 입문 by 김영한)

su_y2on·2022년 1월 13일
0

Spring

목록 보기
10/30
post-thumbnail

스프링 JdbcTemplate



스프링에 DB를 연결하는 것을 JdbcTemplate로 구현해보도록하겠습니다!

리포지토리를 새로만들어줘야겠죠?

JdbcTemplateMemberRepository라는 java class를 생성해줍니다. 그리고 JdbcTemplate 객체를 생성한뒤에 생성자를 이용해서 dataSource를 부여받도록 작성해줍니다. 이때 @Autowired는 생성자가 클래스에 하나라면 생략가능합니다.

public class JdbcTemplateMemberRepository implements MemberRepository {

    private final JdbcTemplate jdbcTemplate;

    //@AutoWire 생성자 하나면 생략가능
    public JdbcTemplateMemberRepository(DataSource dataSource){
        jdbcTemplate = new JdbcTemplate(dataSource);

    }
    ....
    ....
}


레포지토리를 바꿨기 때문에 SpringConfig에 스프링빈으로 등록을 해줘야합니다. 기존의 레포지토리는 주석처리하고 **JdbcTemplate로 바꿔**줍니다 그리고 **DataSouce를 스프링 안에 만들어서 JdbcTemplate에 넣어**줍니다
@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 MemoryMemberRepository();
          return new JdbcTemplateMemberRepository(dataSource);
      }
 }

그런데 누가 SpringConfig의 생성자에 dataSource를 넣어주는 것일까요??🧐

바로 스프링 부트가 데이터베이스 커넥션 정보를 바탕으로 DataSource를 생성하고 스프링 빈으로 만들어두기 때문에 DI를 받을 수 있습니다.



이제 jdbcTemplate레포지토리에 각 함수를 작성해주면 되겠습니다. 이는 생략하도록 하겠습니다!

0개의 댓글