Home 섹션4. 스프링 빈과 의존관계
Post
Cancel

섹션4. 스프링 빈과 의존관계

Controller

  • Controller는 Service를 통해서 데이터를 조회해야함
  • 이런 관계를 의존관계가 있다 라고함

MVC_설명_이미지

스프링 컨테이너 & 스프링 빈

  • 스프링 컨테이너
    • 스프링 빈의 생명주기를 관리하며, 생성된 스프링 빈들에게 추가적인 기능을 제공하는 역할
    • 일반적으로는 new 생성자, 인터페이스 호출, 팩토리 호출 방식으로 객체를 생성하고 소멸
    • 스프링 컨테이너는 위의 역할을 대신해준다 → 제어 흐름을 외부에서 관리하게 된다.
    • 객체들 간의 의존 관계를 런타임 과정에서 자동으로 만들어준다.

스프링_컨테이너,빈_설명_이미지

  • 스프링 빈
    • 스프링 컨테이너에 의해 관리되는 자바 객체를 의미
    • 스프링 빈을 등록하는 방법
      1. 컴포넌트 스캔
        • @Controller, @Repository, @Service 사용, 이들은 @Component를 내장
        • 위 어노테이션이 있으면 객체를 하나씩 생성해 컨테이너에 저장
      2. 직접 스프링 빈 등록
        • hellospring 패키지 아래 SpringConfig라는 클래스 생성
        • @Configuration을 사용하여 SpringConfig 클래스를 빈 설정 클래스로 변경
        • @Bean을 붙혀 빈에 등록되도록 설정함
        • 이후 메모리 방식이 아닌 DB방식으로 수정할 때 설정파일만 변경하면 변경완료
        • 유지보수에 용이

어노테이션

@Autowired

  • @Autowired로 설정한 메서드 자동호출 → 인스턴스 자동 주입
  • 필요한 의존 객체의 타입에 해당하는 빈을 컨테이너에서 찾아 주입한다.
  • 이를 DI(Dependency Injection), 의존성 주입 이라고 한다.
  • 타입 종류
    1. 생성자 → 권장하는 방식
    2. setter
    3. 필드

@Configuration

  • 해당 클래스를 빈 설정을 담당하는 클래스로 변경

참고

https://steady-coding.tistory.com/594

https://devlog-wjdrbs96.tistory.com/166

This post is licensed under CC BY 4.0 by the author.