Spring - bean 등록 방법 (DI)

조병근·2023년 5월 12일
0
post-thumbnail

본 글은 스프링 빈의 의존 관계를 자동 설정하는 방법에 대해 다루고 있다.

스프링 빈 설정 방법은 크게 두 가지가 존재한다.


1. 컴포넌트 스캔과 자동 의존관계 설정(쉽게 Autowired 사용)
2. 자바 코드로 직접 스프링 빈 등록

컴포넌트 스캔과 자동 의존관계 설정 방식

먼저 Autowired를 통한 컴포넌트 스캔과 자동 의존관계 설정 방식을 보자.

  1. 연결하고 싶은 Controller 에 @Controller, Service에 @Service, Respository에 @Repository 어노테이션을 붙여준다.
  2. 이후 연결하고 싶은 constructor에 @Autowired 어노테이션을 붙여준다. → 생성자 주입이라고도 함

+필드 주입방법도 있으나 잘 사용함

+Setter 주입은 한번 생성하고 변경할 경우 오류가 발생할 수 있음, 아무나 호출할 수 있게 되어 좋지 않음

다음과 같이 설정해주면 memberService 와 memberRepository 가 스프링 컨테이너에 스프링 빈으로 등록되었다

자바 코드로 직접 스프링 빈을 등록하는 방식

두번째 방법은 자바 코드로 직접 스프링 빈을 등록하는 방식이다.

  1. 앞에서 붙인 어노테이션을 제거한다. (@Controller만 내비둔다.)
  2. SpringConfig 파일 생성 후 @Configuration 어노테이션을 붙여준다.
  3. 생성할 빈에 @Bean 어노테이션을 붙여 등록
@Bean
 public MemberService memberService() {
	 return new MemberService(memberRepository());
 }

@Bean
 public MemberRepository memberRepository() {
		return new MemoryMemberRepository();
 }

컨트롤러는 스프링이 관리하는 것이기 때문에 autowired로 해주면 됨

과거에는 XML로 설정했었음

profile
노력하면 못할 일이 없다

0개의 댓글