본문 바로가기

스파르타 부트캠프(spring)

[내일배움캠프_Spring] 자바 Spring 입문_221220

<<스프링 빈(Bean)>>

스프링 빈(Bean)

: Spring IoC 컨테이너가 관리하는 자바 객체 = Bean

  • 자바에서 객체를 생성할 때 주로 new를 통해 생성하는데, 이 객체를 의미하는 것이 아니라 컨테이너에서 스스로 생성하고 관리하는 객체를 의미
  • 여러번 생성할 필요가 없고, 공용으로 사용할 수 있다.

스프링 빈 등록법

1.Component Scanning

@Controller
public class MemberController {

    private final MemberService memberService;

    @Autowired
    public MemberController(MemberService memberService) {
        this.memberService = memberService;
    }
}

   -@Component 어노테이션이 있으면 Bean이 자동으로 등록된다. 
   -주로 정형화된 코드에서 활용.(ex.컨트롤러-서비스-리포지토리)
   -@Controller, @Service, @Repository는 @Component 어노테이션을 포함하고 있기 때문에 대신하여 사용할 수 있다.

 

 

2.직접 빈을 등록

@Configuration
public class SpringConfig {

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

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


-주로 정형화 되지 않거나 상황에 따라 구현 클래스를 변경해야 하는 경우에 사용.
-클래스를 하나 생성하고 @Configuration어노테이션을 붙인다. 그 후 Bean으로 등록할 객체들에 @Bean어노테이션을 직접 등록한다.