Spring/스프링 입문

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

코징 2022. 3. 7. 23:36

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

상황 발생 : 정해지지 않은 DB

해결 방법 : SpringConfig로 빈을 직접 등록, DB가 선택됬을때 SpringConfig의 MemoryMemberRepository만 수정하면된다.

 

SpringConfig 생성

main > java > hello.hellospring > SpringConfig.java 생성

package hello.hellospring;
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 {

    @Bean
    public MemberService memberService() {
        return new MemberService(memoryMemberRepository());
    }

    @Bean
    public MemoryMemberRepository memoryMemberRepository() { // 차후에 MySqlDBMemberRepository 처럼 해당하는 인터페이스 구현체를 통해 변경해준다.
        return new MemoryMemberRepository();
    }
}

 

결론

자바에서 SpringConfig를 통해서 빈을 직접 등록을 해야 될때는

1) 아직 정해지지 않은 DB 처럼 인터페이스의 구현체를 계속 변경해야될 상황에 사용하면 용이하다.

 

 

이 글은 인프런의

제목 : 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

강사 : 김영한 님의 동영상을 참조해 만들었습니다.

https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%EC%9E%85%EB%AC%B8-%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8/dashboard