인프런 커뮤니티 질문&답변

최한태님의 프로필 이미지
최한태

작성한 질문수

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

서로 다른 도메인을 가진 repository에 대해서

해결된 질문

작성

·

269

0

안녕하세요

강의를 듣고 토이프로젝트를 진행 중인데 고민이 있어서 여쭤봅니다.

한개는 고객을 담당하는 레포지토리고, 한개는 방명록을 담당하는 레포지토리입니다.

// 고객 레포지토리
public class MemberRepository{

public void save(Member member){
        sqlSession.insert("com.example.toy.mapper.MemberMapper.save", member);
    }
}

// 방명록 레포지토리
public class BoardRepository {
 public void save(Board board){
        sqlSession.insert("com.example.toy.mapper.BoardMapper.save", board);
    }
}

서로 기능이 거의 비슷해서 추상화를 통해 의존성 주입을 받고 싶은데 파라미터의 타입이 달라서 못하는 상황입니다.

여기서 파라미터의 타입을 아예 Object로 하는게 좋은지, 아니면 이런 경우에는 인터페이스로 추상화를 할수 없는 건지 궁금합니다!

답변 1

2

안녕하세요. 최한태님, 공식 서포터즈 David입니다.

제네릭을 사용하면 인터페이스로 추상화하여 사용할 수 있을 것 같습니다.

아래 JpaRepository 인터페이스 코드를 참고해 주세요.

https://github.com/spring-projects/spring-data-jpa/blob/main/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/JpaRepository.java

제네릭에 대한 부분은 아래 내용을 참고해 주세요.

https://coding-factory.tistory.com/573

감사합니다.

최한태님의 프로필 이미지
최한태

작성한 질문수

질문하기