본문 바로가기

Spring/Spring Core12

Core 2 - 스프링 빈 의존관계 자동주입 크게 4가지의 의존관계 주입이 있다. 1. 생성자 주입 생성자를 통해서 의존관계 주입, 여태 작성한 코드들이 생성자 주입을 사용함, 불변, 필수 의존관계에 사용 생성자가 1개만 있다면 Autowired를 생략해도 자동 주입 된다. 2. 수정자 주입 setter라고 불리는 필드의 값을 변경하는 수정자 메서드를 통해서 주입, 선택,변경 가능성이 있는 의존 관계에 사용 3. 필드 주입 필드에 바로 주입, 외부에서 변경이 불가능해 테스트 하기 힘듬. 사용을 지양 4. 일반 메서드 주입 일반 메서드를 통해서 주입, 한 번에 여러 필드를 주입받을 수 있으나 잘 사용하지 않음 최근에는 스프링을 포함한 DI프레임 워크 대부분이 생성자 주입 권장 임의의 변경 방지, 누락되었을 때 발생하는 컴파일 오류,.. 2023. 6. 19.
Core 1 - 객체지향과 스프링 컨테이너 MemberRepository memberRepository = new MemoryMemberRepository(); 기존의 상속,캡슐화,추상화,다형성만으로는 객체지향설계를 하기엔 문제가 있다. 기존 코드의 변경이 있을 때, 클라이언트의 코드를 수정해야하고 모듈이 추상체뿐만 아니라 구현체에도 의존하는 문제가 발생한다.그리고 이는 OCP와 DIP를 깨뜨리게 된다. private final MemberRepository memberRepository; 이를 위해서 우리는 관심사를 분리해야한다. 객체는 자신의 역할을 실행만 하면 될 뿐, 그 이상에 관여하는 것은 코드의 안정성에도, 객체에게도 부담이 가는 일이다. 즉, 객체가 자신이 무엇을 실행하는지 알 필요는 없고, 그저 메세지를 주고 메세지를 받음으로써 해.. 2023. 6. 17.