Spring Framework 1)

Jinmin Kim·2021년 5월 20일
0

Spring Framework

스프링은 경량 컨테이너라고도 불린다. 컨테이너의 대표적인 것은 Tomcat을 예를 들수있는데
Tomcat은 서블릿 컨테이너라고 부른다. 톰캣이 서블릿의 생성 초기화 실행에 대한 권한을 가지고 관리하기때문

Spring의 특징

  1. 제어역행(IOC, Inversion oF Control) 기술을 이용해 애플리케이션간의 느슨간 결합을 제어
    IOC : 서블릿이나 빈등을 개발자가 코드에서 생성하지않고 프레임워크가 직접수행
  2. 의존성주입(DI, Dependency Injection) 기능을 지원
    DI : 클래스 객체를 개발자가 코드에서 생성하지않고 프레임워크가 생성하여 사용
  3. 관점지향(AOP, Aspect-Oriented Programming) 기능을 이용하여 자원관리
    AOP : 핵심기능외 부수기능들을 분리구현함으로써 모듈성을 증가시킴
  4. 경량컨테이너의 기능을 수행

사용자의 요구사항에 따라 클래스 기능을 변경하거나 다른 클래스 기능으로
대체해야하는 경우가 자주생기는데, 이러한 상황에서 좀더 수월하게 대체할수있게 도입된
기능이 DI(의존성주입), IOC(제어역행)

의존성주입(DI)

원래는 클래스의 생성자를 개발자가 직접 호출해서 사용했다.
의존성 주입이란 개발자가 직접 코딩을 통해서 컴포넌트(클래스)에 부여하는것이 아니라
컨테이너가 연관관계를 직접규정하는것. 이렇게되면 각 클래스의 변경이 자유로워진다.

DI는 객체의 생성, 소멸, 의존관계를 개발자가 직접 설정하는것이아니라
XML이나 annotaion 설정을 통해 스프링 프레임워크가 제어하게되는것.
원래는 개발자가 객체를 지정하였지만 스프링에서는 객체의 제어를 스프링이 담당하게 되므로 제어의 역전(IOC)이라고 하게됨

// DI ex) new 키워드를 사용하지않고 생성자를 호출해 외부에서 객체 주입
public class BoardServiceImpl implements BoardService{
  private BoardDAO boardDAO;
  public BoardServiceImple(BoardDAO boardDAO){
      this.boardDAO = boardDAO;
  }
}

Bean

의존하는 객체를 컨테이너 실행시 주입하기 때문에 DI라고 부르게된다
각 클래스 객체를 bean(빈)이라고 부르는데 이는 의존관계를 설정하는 XML파일에서
각 객체를 bean태그로 나타내기 떄문

DI

  1. 생성자 이용해서 주입하는 방식
  2. setter를 이용해서 주입하는 방식

AOP

AOP는 메서드 안의 주기능과 보조 기능을 분리한 후 선택적으로 메서드에 적용해서 사용한다는 개념이다. 즉 공통기능을 구현할때에 유용하게 사용할수있다.
전체 코드에 흩어져있는 보조 기능을 하나의 장소에 모아서 관리할수있다.
또한 보조 기능을 자신이 원하는 주기능에 선택적으로 적용할수있어 코드가 단순해지고 가독성도
향상되게된다.

스프링에서 AOP
1. API를 이용하는 방법
타깃 클래스 지정 -> 어드바이스 클래스 지정 -> 설정파일에서 포인트컷을 설정
-> 설정파일에서 어드바이스와 포인트컷 결합하는 어드바이저 설정
-> 설정파일에서 ProxyFactoryBean 클래스를 이용해 타깃에 어드바이스 설정
-> getBean 메서드로 빈 객체에 접근해서 사용

profile
Let's do it developer

0개의 댓글