목차
- Spring Core - 의존성 주입 방식
- Spring Core - 컴포넌트 스캔과 의존성 주입
- Spring Core - BeanDefinition
- Spring Core - 스프링 빈
- Spring Core - 스프링 컨테이너 생성과 Bean 등록, 의존성 주입
- Spring Core - 스프링 컨테이너
컴포넌트 스캔과 의존성 주입
스프링에서는 설정 정보 없이도 스프링 Bean 을 자동으로 등록하는 기능을 제공합니다. 또한, 등록된 Bean 들의 의존 관계도 자동으로 주입하는 기능도 제공합니다.
스프링은 @ComponentScan
을 이용해 스프링 Bean 을 자동으로 등록하고, @Autowired
와 @Inject
를 사용해 의존 관계를 자동으로 주입해 줍니다.
1. 컴포넌트 스캔
@ComponentScan 은 @Component 가 붙은 모든 클래스들을 스프링 Bean 으로 자동 등록합니다. 스프링 Bean 등록시 기본적으로 클래스명과 동일하며 맨 앞글자만 소문자로 등록됩니다.
만일, 별도의 이름을 지정하고 싶으면 @Component("Bean 이름")
으로 등록하면 됩니다.
2. 의존성 주입
@Autowired
가 붙은 객체를 확인하면 스프링 컨테이너가 해당 객체를 찾아 넣어줍니다. 이때, 의존성은 타입을 기준으로 넣어줍니다.
의존성 주입 객체가 Bean 으로 등록돼 있지 않으면 NoSuchBeanDefinitionException
에러가 발생합니다. 만약, 의존성 주입 객체가 없이 프로그램을 실행하고 싶을 경우 @Autowired(required = false)
로 설정하면 에러가 없이 프로그램이 실행됩니다.