728x90
(인프런) 김영한님의 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술을 공부하고 리뷰한 글입니다.
스프링 빈을 등록하는 2가지 방법
2. 자바 코드로 직접 스프링 빈 등록하기
여기서는 2번 방법으로 스프링 빈을 등록하고 의존 관계를 설정하였다. 자바 코드로 직접 스프링 빈을 등록하는 방식은 @Service, @Repository, @Autowired 어노테이션을 사용하지 않고 스프링 빈을 등록하고 의존 관계를 설정하는 클래스를 따로 만들어 관리하는 방식이다.
향후 메모리 리포지토리를 다른 리포지토리로 변경할 예정이므로 컴포넌트 스캔 방식 대신에 자바 코드로 스프링 빈을 설정하도록 한다.
1. 저번 포스팅에서 했던 컴포넌트 스캔, 자동 의존 관계 설정 해제
자바 코드로 직접 등록을 하기 위해 회원 서비스와 회원 리포지토리의 @Service, @Repository, @Autowired 어노테이션을 모두 제거한다. 여기서 회원 콘트럴러의 @Controller와 @Autowired 어노테이션은 삭제하면 안된다!
2. 자바 코드로 직접 스프링 빈 등록하기
1) 스프링 빈을 등록하고 의존 관계 설정을 위한 SpringConfig 클래스 생성
2) SpringConfig 클래스 앞에 @Configuratoin 추가
3) memberService 스프링 빈 등록, 생성자 주입으로 memberRepository와 의존 관계 설정
4) memberRepository 스프링 빈 등록
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 {
// 스프링 빈에 등록
@Bean
public MemberService memberService() {
return new MemberService(memberRepository());
}
// 나중에 DB가 정해지면 바뀔 부분
@Bean
public MemberRepository memberRepository() {
return new MemoryMemberRepository();
}
}
- @Configuration: 스프링 설정 클래스 선언
- @Bean: 스프링 빈 등록
728x90
'Spring > 스프링 입문' 카테고리의 다른 글
[스프링 입문] 05. 회원 관리 예제(웹 MVC 개발) - 회원 웹 기능2(등록) (0) | 2022.04.28 |
---|---|
[스프링 입문] 05. 회원 관리 예제(웹 MVC 개발) - 회원 웹 기능1(홈 화면 추가) (0) | 2022.04.28 |
[스프링 입문] 04. 스프링 빈과 의존 관계 - 컴포넌트 스캔과 자동 의존 관계 설정 (0) | 2022.04.28 |
[스프링 입문] 03. 회원관리 예제(백엔드 개발) - 회원 서비스 테스트 (0) | 2022.04.27 |
[스프링 입문] 03. 회원관리 예제(백엔드 개발) - 회원 서비스 개발 (0) | 2022.04.27 |