3. 스프링 빈과 의존 관계 설정

김상복·2022년 3월 30일
0

김영한 Spring

목록 보기
3/3

스프링 컨테이너의 구성

Controller → Service → Repository

의 순으로 작동한다고 생각하면 편하다

그렇기 때문에

Controller 역활을 하는 클래스에는 @Controller
Service 역활을 하는 클래스에는 @Service
Repository 역활을 하는 클래스에는 @Repository

어노테이션을 적용시키면된다

위 어노테이션 3가지의 상위 어노테이션인 @Component 라는 어노테이션도 존재한다

자바코드로 직접 스프링 빈 등록하기

위의 방식으로 직접 Bean 등록이 가능해진다

@Configuration 어노테이션을 스프링 컨테이너 생성시 찾아서 @Bean을 객체화해서 컨테이너에 빈의 형태로 올려준다.

@Service, @Repository는 해당 방법으로 이식이 가능하다
@Controller는 왠만하면 어노테이션을 사용해서 사용하는 것이 좋다

자바로 직접 Bean 등록, 어노테이션 등록의 차이점

  • 나중에 변경을해줘야 하는 경우 자바로 직접 Bean으로 등록한다
  • 어노테이션으로 등록하면 편하지만 변경을 해줘야할 때 일일히 모든 컴포넌트 스캔을 확인해줘야할 필요가 있다

Autowired의 역활

@Autowired 로 의존성을 주입하면 작동 되는 스프링 컨테이너에서 맞는 객체를 가져와서 주입해준다

  1. Service

  1. Repository

위의 코드에서 보면 Service 클래스에서 Repository 클래스를 주입받고 있다.
여기서 Autowired는

Spring 컨테이너에 등록 된 Repository 클래스(@Repository가 입력되어있어서 자동으로 등록된다)를 찾아서 Service에 주입시켜준다는 의미가 되고, Service 클래스에서는 스프링 컨테이너에 등록되어있는 Repository를 사용할 수 있게 된다.

대부분의 경우, 생성자 주입을 선호한다

profile
초보 개발자

0개의 댓글