public class MemberService
클래스 MemberService가 있고
이것을
private final MemberService memberService = new MemberService(); 이렇게 새로운 객체르 만들어서 사용하는게 아니고
아래와 같이 생성자를 이용해서 하는게 좋다던대 왜 그런거야??
@Controller
public class MemberController {
private final MemberService memberService;
public MemberController(MemberService memberService) {
this.memberService = memberService;
}
}
테스트 편해지고 final 키워드를 쓸 수 있다는게 장점임. 그리고 autowired는 스프링에 의존적인 코드지만 생성자는 자바 자체의 문법이므로 여차하면 대체할 수 있음. (그럴일은 없겠지만)
설명 고마워 ㅎㅎ
밥먹으면서 대충 읽고 썼더니 다른소리 하고 있었네.. DI, IoC, 스프링 코어 찾아보삼
주입 방식이 아니라 왜 new를 안쓰는건지 헷갈리는거면 di에 대해서 찾아보셈
헉 .. 이게 맞는거 같아 고마워
DI가 왜필요한지는 찾아보면 되는데 그냥 테스트코드 짜려고 개지랄하다보면 '아 씨발 이래서..!!' 하고 깨닫는 순간이 옴 ㅋㅋㅋㅋ