# SPRING

김유미·2022년 4월 16일
0

SPRING

목록 보기
1/4

Spring이란?

  • 자바플랫폼을 위한 오픈소스 애플리케이션 프레임워크

메이븐이란?

  • Maven은 자바용 프로젝트 빌드도구

  • 빌드도구는 프로젝트 생성, 컴파일, 테스트 빌드, 패키징, 배포, 라이브러리 관리 기능 등의 작업을 위한 전용 프로그램

  • 메이븐 설치를 통해 설정 파일과 이클립스 없이 빌드를 사용할 수 있지만, 이클립스에 메이븐 플러그인을 설치해서 메이븐 설치없이도 사용가능

  • 라이브러리 관리 기능

    • Spring 프로젝트를 편리하게 관리 가능, 가장 많이 사용되는 부분이 라이브러리 관리 기능
    • Java로 개발하다 보면 다양한 라이브러리를 필요로 하게 되는데, pom.xml 파일에 필요한 라이브러리를 적으면 Maven이 알아서 다운받아 설치해주고 경로까지 지정해준다.

    *pom.xml : Project Object Model, 메이븐이 프로젝트를 처리하는 필요한 정보를 제공하는 파일

의존성 주입(Dependency Injection, DI)

=> Main 클래스는 PrintA 클래스에 의존적

  • 스프링에서 말하는 DI란 외부에서 두 객체 간의 관계를 결정해주는 디자인 패턴으로, 객체 간의 의존성(객체 간의 관계맺음)을 객체 내부에서 직접 해주는 대신, 외부에서 객체를 생성해서 넣어주는 방식
  • 이전까지는 이와 같은 객체 간의 의존성 설정을 1) A클래스 내에서 B객체를 new B()를 통해 생성해서 넣어주거나, 혹은 2) B클래스에서 싱글톤 패턴을 이용해서 자신의 객체를 생성해둔 것을 A 클래스 내에서 getInstance() 등의 메소드 등을 통해 받아서 넣어주는 방식을 사용
  • Spring에서는 객체 간의 관계 설정을 클래스 내부에서 직접 하는 방식 대신, Spring Container를 이용하여 외부에서 객체를 생성하고, 객체를 주입해주는 방식, 즉 의존성 주입 방식을 채택

<의존성 주입방법>

xml을 이용한 DI 방식

자바코드를 이용한 DI 방식

  • @Configuration, @Bean 빈 객체 생성

DI 자동주입

  • @annotation을 사용한 의존성 자동 주입
    • 생성자, setter를 통한 주입 방식이 아닌 @어노테이션을 통해 자동주입 가능
    • 전역변수, 함수, 생성자 위에 사용가능
    • @annotation을 사용하기 위해 xml에 <context:annotation-config/>설정 필요

  • 컴포넌트 스캔을 통한 빈 자동 등록(@Component)
    • XML을 통한 bean 등록이 아닌 자동으로 빈을 등록하여 사용
    • 클래스명 위에 @Component 로 빈 등록
    • XML에 <context:component-scan/> 설정 필요
    • @어노테이션을 사용하여 의존성 주입을 해야 함

0개의 댓글