스프링 빈과 의존관계

개발자·2022년 3월 1일
0

스프링

목록 보기
4/4
post-thumbnail

컴포넌트 스캔과 자동 의존관계

컴포넌트 스캔이란 @Component 어노테이션을 말하는데

@Component

@Repository, @Service, @Controller 등을 포함하고있다.

이 방식을 사용하여 스프링이 이것이 리포지토리,서비스,컨트롤러라는걸 알수 있게 하여 스프링 빈으로 자동 등록되도록 한다.

@Autowired

스프링이 연관된 객체를 스프링 컨테이너에 찾아서 넣어준다.
이것을 DI(의존성 주입) 이라고 한다.

스프링은 스프링 빈을 등록할 때 일반적으로 싱글톤으로 등록한다

싱글톤이란 유일하게 하나만 등록하여 모두 같은 하나의 인스턴스만 사용하도록 하는것이다.

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

여기서는 기존에 설정했던 컴포넌트 스캔을 모두 지우고 사용한다.

SpringConfig

package hello3.hellospring;

import hello3.hellospring.repository.MemberRepository;
import hello3.hellospring.repository.MemoryMemberRepository;
import hello3.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());
    }

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

@Configuration

스프링 빈으로 등록하라고 스프링에 알려주는 어노테이션이다.

0개의 댓글