참고문헌

image

스프링부트의 편리함

  • web 선택 -> 관련 라이브러리들 의존성 관리

image

image

IoC 컨테이너 2부: ApplicationContext와 다양한 빈 설정 방법

스프링 IoC 컨테이너의 역할

  • 빈 인스턴스 생성
  • 의존 관계 설정
  • 빈 제공

AppcliationContext 생성

  • 설정파일을 xml로 설정할 때 : ClassPathXmlApplicationContext
ApplicationContext context = new ClassPathXmlApplicationContext("application.xml");
  • 설정파일을 java파일로 설정할 때 : AnnotationConfigApplicationContext

    • 주입방식 1 : 함수호출

    image -

    • 주입방식 2 : 파라미터로 받아서 넘겨주기 image -
    • 주입방식 3 : 의존성 주입을 configuraion에서 직접하지 않고, 서비스 로직에서 꺼내와서 주입

image

image

  • 어노테이션 방식으로 설정을 읽어들일 때 : @ComponentScan
    • @ComponentScan 사용
    • basePackage는 문자열로 입력해야 하므로 type safety 이슈가 있을 수 있음
    • basePackageClass : type safety함
    • 해당 클래스가 있는 위치에서부터 @Component 어노테이션이 붙은 클래스들을 모두 빈으로 등록해라.
    • @Service, @Repository 등은 @Component를 포함하고 있음

image

image

  • (스프링부트, 앞선 내용들은 Spring에 해당하는 내용들) @SpringBootApplication 사용
    • ApplicationContext를 자동으로 생성
    • @ComponentScan이 포함됨
    • @ComponentScan도 할 필요가 없어짐

image

빈 설정

  • 빈 명세서
  • 빈에 대한 정의를 담고 있다.
    • 이름
    • 클래스
    • 스코프
    • 생성자 아규먼트 (constructor)
    • 프로퍼트 (setter)
    • ..

컴포넌트 스캔

  • 설정 방법
    • XML 설정에서는 context:component-scan
    • 자바 설정에서 @ComponentScan
  • 특정 패키지 이하의 모든 클래스 중에 @Component 애노테이션을 사용한 클래스를 빈으로 자동으로 등록 해 줌.