2024/01/06 3

[Spring 기본] 6. 의존관계 자동 주입

생성자 수정자 (setter) 필드 주입 메소드 주입 생성자 주입 사용하기 추천 final 키워드와 함께 사용 생성자 주입을 사용하면 필드에 final 키워드를 사용할 수 있다. 그래서 생성자에서 혹시라도 값이 설정되지 않는 오류를 컴파일 시점에 막아준다. 롬복 라이브러리 사용하기 getter, setter 어노테이션 제공 @RequiredArgsConstructor 롬복 라이브러리가 제공하는 @RequiredArgsConstructor 기능을 사용하면 final이 붙은 필드를 모아서 생성자를 자동으로 만들어준다. (코드에는 보이지 않지만 실제 호출 가능하다.) 최근에는 생성자를 딱 1개 두고, @Autowired 를 생략하는 방법을 주로 사용한다. 여기에 Lombok 라이브러리의@RequiredArgs..

개발/java 2024.01.06

[Spring 기본] 5. 컴포넌트 스캔

컴포넌트 스캔과 의존관계 자동 주입 컴포넌트 스캔 Configuration 클래스에 @ComponentScan 어노테이션을 붙인다. 스프링 빈으로 등록할 객체들을 @Component 어노테이션을 붙인다. 그러면 컨테이너에 빈으로 등록이 된다. 이전에는 직접 new MemberServiceImpl(memberRepository()) 같은 식으로 의존관계가 주입이 가능했는데, 지금은 불가능해졌다. 자동의존관계 주입 클래스의 생성자에 @Autowired 어노테이션을 붙이면 스프링 빈 중 해당 파라미터 타입에 해당하는 빈이 자동으로 의존관계 주입이 된다. applicationContext.getBean(MemberRepository.class) 의 결과를 주입한다고 보면 된다. 타입이 여러 개인 경우는 추후 설..

개발/java 2024.01.06

[Spring 기본] 4. 싱글톤 컨테이너

4. 싱글톤 컨테이너 1. java는 웹 애플리케이션 서비스 용 언어 요청이 있을 때마다 새로 new 를 해서 객체를 반환하는 문제 클라이언트가 요청할 때 매번 객체가 새로 생긴다 요청을 수행하기 위해 스레드가 하나 생기고, 독립적인 인스턴스가 생기기 때문에 그런 것이다. 2. 싱글톤 패턴 싱글톤 패턴을 이용하여, 하나의 객체를 가지고 요청을 처리하도록 할 수 있다. 생성자 private 화, 그리고 static 멤버 변수로 미리 생성해둔 후 getInstance() 로 반환. 3. 싱글톤 패턴의 문제점 싱글톤 패턴을 구현하는데 코드를 많이 필요로 한다. 의존관계상 클라이언트가 구현체에 의존하게 된다. DIP 위반 따라서 OCP 도 위반하게 된다. 유연한 테스트를 하기 어렵다. 내부 속성을 변경하거나 초..

개발/java 2024.01.06
728x90
728x90