스프링부트 공부 1일차

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