Framework/Spring Boot

스프링 빈과 의존관계 - 자바 코드로 직접 스프링 빈 등록하기

반응형

설정파일 별도로 만들 때

Service, Repository에 어노테이션 없이 설정파일에서 별도로 등록해주는 방법이다.
XML로 설정하는 방법도 있는데 현재는 잘 사용하지 않는다.
DI에는 필드 주입, setter 주입, 생성자 주입 3가지 방법이 있다. 의존관계가 실행중 동적으로 변화하는 경우가 거의 없으므로 생성자 주입을 권한다. 처음에 앱이 조립될때 생성자로 한번만 들어오고 끝남.
필드 주입은 바꿀 수 있는 방법이 없어서 좋지 않다.
상황에 따라 구현 클래스를 변경해야 하면 스프링 설정 파일을 이용해서 변경한다.

package hello.hellospring;

import hello.hellospring.repository.MemberRepository;
import hello.hellospring.repository.MemoryMemberRepository;
import hello.hellospring.service.MemberService;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class SpringConfig {

    //이렇게 하면 스프링이 뜰 때 Configuration을 읽고 Spring Bean에 등록하라는 뜻이네 라고 인식해서 스프링빈에 멤버서비스를 등록해준다
    @Bean
    public MemberService memberService(){
        return new MemberService(memberRepository()); //ctrl+P 해보면 뭘 넣어줘야 하는지 나온다
    }

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

 

728x90
반응형