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

class hura님의 프로필 이미지
class hura

작성한 질문수

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

웹 서버, 웹 애플리케이션 서버

여러개의 데이터 타입을 컨트롤 해야하는 프로그램에서의 질문입니다

작성

·

236

0

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.

1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)

질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)

[질문 내용]
여기에 질문 내용을 남겨주세요.
해당 강의를 수강후 여러 객체를 리턴해야하는 상황이 있었습니다ex(member객체와 book객체)를 하나의 프로젝트에서 사용할려고 하는데 두개의 다른 객체를 각각 따로
db에 연결하기 위하여 서로 다른 리포지토리 객체를 따로따로ex(memberRepository, bookRepository)를 따로 따로 만들어도 괜찮을까요(코드의 중복 DI 사용의 힘듬) 아니면
스트레티지 패턴등을 이용하여 객체지향을 노리는게 좋을까요 강의에선 하나의 domain객체 만을 사용하였기에
이러한 부분을 알기 힘들었습니다
 

답변 1

2

안녕하세요. class hura님, 공식 서포터즈 David입니다.

하나의 서비스 내에서 서로 다른 엔티티를 관리하는 repository를 여러 개 사용을 말씀하시는거라면 여러 개를 사용하셔도 무방합니다.

감사합니다.

class hura님의 프로필 이미지
class hura
질문자

예 제가 말하고자 했던 내용을 정확히 이해하고 답변해주셔서 감사합니다

추가로 질문드리면 이럴경우 DI는 어찌해야 할까요?

리포지토리가 여러개가 되어 AUTOWIERD를 사용할수 없고 속성값을 컨트롤러에 직접 리포지토리를 명시(어노테이션 속성값이나 생성자 에서 구체 객체를 명시)  하자니 스프링 답지 않다고 생각이 들었습니다

이럴경우 어떻해 해결해야 할까요? 

Autowierd속성값으로 넣어주는것 입니다

감사합니다

아래 강의를 참고하시면 좋을 것 같습니다.

생성자 주입으로 여러 개의 repository를 주입받으면 될 것 같은데, 어떤 부분이 문제처럼 생각되시나요?

https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%95%B5%EC%8B%AC-%EC%9B%90%EB%A6%AC-%EA%B8%B0%EB%B3%B8%ED%8E%B8/unit/55373

class hura님의 프로필 이미지
class hura
질문자

제가 각 엔티티별로 컨트롤러를 만들어서 각 컨트롤러에 대응하게 repository를 만들려고 했었습니다

그러다보니 여러개의 repository를 주입받는다는 생각은 하지 못했습니다

이럴경우에는 프론트 컨트롤러로 변경을 해야할까요

말씀하신 부분만 들어서는 어떻게 구성하실지 감이 안 오네요ㅎㅎ;

class hura님의 프로필 이미지
class hura
질문자

감사합니다 위에서 해주신 말을 곰곰히 생각해본결과 제가 DI를 잘몰라 생긴일이였습니다

중요한 본질을 알아내어 문제를 해결하였습니다.

class hura님의 프로필 이미지
class hura

작성한 질문수

질문하기