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

김보겸님의 프로필 이미지
김보겸

작성한 질문수

스프링 핵심 원리 - 기본편

생성자 주입을 선택해라!

질문있습니다

작성

·

241

0

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

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

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

[질문 내용]
이전강의부터 불변이라는게 좀 헷갈렸는데요
setXxx 메서드로 다른개발자가 MemberRepositroy를
MemoryRepository에서 JdbcRepositroy로 바꾸면 안되니까
final을 붙여 수정을 못하게하고 생성자를 열어놔서 AppConfig에서 Bean을 등록하여 거기서 인스턴스화해서 생성자에 값을 넣어주잖아요
그런데 궁금한건 다른 개발자가 AppConfig에서 똑같이 Memory를 Jdbc로 바꿀수있을텐데 왜 불변인지 잘 이해가 안갑니다 ㅠㅠ

답변 1

0

안녕하세요. 김보겸님, 공식 서포터즈 David입니다.

불변은 생성된 시점 이후를 말합니다.

생성자를 통해 객체가 생성되고 난 이후 생성된 객체의 repository 필드 상태를 변경할 방법이 없습니다.

감사합니다.

김보겸님의 프로필 이미지
김보겸
질문자

아 웹으로 예를들면

서버돌리고나서 특정 버튼에

set주입을 걸어두면 유저나 다른사람이 변경가능한데

생성자주입으로 하면 이벤트를 걸수가없어 불변이다 이렇게 이해하는게 맞을까요?

네, 맞습니다.

김보겸님의 프로필 이미지
김보겸

작성한 질문수

질문하기