Spring IoC Container: 애플리케이션 컴포넌트의 중앙 저장소. 빈 설정 소스로부터 빈 정의를 읽어들이고, 빈을 구성하고 제공한다.
IoC : Inversion of Control. 의존관계주입이라고도 하며 어떤 객체가 사용하는 의존객체를 직접 만들어서 사용하는 것이 아닌, 주입받아 사용하는 방법.
Bean: Spring IoC Container가 관리하는 객체 @Service, @Repository등등 어노테이션이 붙여서 빈으로 등록한다.
스코프 :
싱글톤: 하나의 객체에만 사용
프로토타입: 매번 다른 객체
BeanFactory: Spring의 최상위 인터페이스. 가장 핵심클래스. 빈생성, 빈 가공등을 한다.
의존성 문제: BookService가 BookRepositoryt의 의존관계일때, BookService가 구현됬음에도 불구하고 BookRepository가 구현되지 않았을때 BookService는 사용불가. 테스트하기 힘들어짐.
가짜개체: @Mock 어노테이션을 사용.
ApplicationContext: BeanFactory를 상속받은 인터페이스. 여러가지 기능을 추가한 인터페이스. 주로 사용하는 BeanFactory이다.
context:component-scan : 지정한 패키지에 빈을 스캔해서 등록을 한다.
빈 의존성 등록 방법
java 파일로 빈 설정파일 제작
@Configuration 어노테이션을 붙여서 제작
@Configuration
public class ApplicationConfig {
@Bean
public BookReposiroty bookReposiroty(){
return new BookRepository();
}
@Bean
public BookService bookService(){
BookService bookService=new BoolService();
bookService.setBookRepository(bookReposiroty());
return bookService;
}
}
@Autowired 어노테이션을 붙여서 일일히 지정 안해도 됨.
단 위에 설명한 방법은 @SpringBootApplication에 ConponentScan이 포함되어 있으므로 굳이 할 필요 없음. @Autowired나 쓰자.
'Web > Spring Boot' 카테고리의 다른 글
ObjectMapper (0) | 2021.05.08 |
---|---|
스프링부트 공부 5일차 (0) | 2020.12.19 |
스프링 공부 4일차 (0) | 2020.12.19 |
스프링 공부 3일차 (0) | 2020.12.13 |
스프링부트 공부 2일차 (0) | 2020.12.09 |