Day67 :) 스프링 프레임워크

Nux·2021년 12월 25일
0

자바웹개발

목록 보기
81/105
post-thumbnail

Spring Framework

  • POJO 기반의 JAVA EE 애플리케이션 개발을 지원하는 프레임워크
    - java ee(Java Enterprise Edition): 서버개발에 필요한 기능을 모아서 만든 표준. EJB가 핵심 기술
    • EJB: 자바 API중 하나로 업무 로직을 처리함
      - POJO(Plain Old Java Object): EJB 등장 이전의, 특정 실행환경이 필요없는 자바 객체로 개발하자는 의미로 붙여진 이름
  • 과거 JAVA EE 서버 배포를 위해 많은 XML설정이 필요했는데 이를 개선하기 위해 스프링이 출시됨

IOC

  • Inversion of Control : 제어 역전
  • 프로그래머가 직접 객체 제어를 수행하지 않고 여러 프레임워크, 컨테이너가 수행하는 것

DI

  • Dependency Injection : 의존성 주입
  • 한 객체(B)가 다른 객체(A)의 의존성을 제공하는 것.
    = 한 객체(A)가 다른 객체(B)를 사용하는 것
  • B가 변경 시 A도 바뀌면 의존성이 있다고 표현.
  • 방법1: 일체형. A객체 내부에 B와 C가 포함되어 있으며 내부에서 생성해서 사용
  • 방법2: 조립형. A객체가 외부의 B와 C를 불러와(Dependency Injection) 사용

A객체는 B와 C객체로부터 의존성을 주입받음 / A객체는 B와 C객체를 의존함

Spring Container

  • 스프링 프레임워크의 가장 중요한 기능 담당
  • 다양한 인터페이스와 구현 클래스로 구성되어 있으며 자바 객체의 생성/소멸 관리
  • 개발자가 작성한 코드의 처리를 위임받아 독립적으로 처리
  • 객체의 조립과 관점지향 프로그램 지원

종류

BeanFactory 인터페이스

bean: spring container가 관리하는 자바객체

  • 빈 컨테이너에 접근하기 위한 최상위 인터페이스
  • 객체(bean)의 라이프사이클 관리, 객체 조립 지원

ApplicationContext 인터페이스

  • BeanFactory를 상속받은 인터페이스
  • 구동시점에 등록 요청한 Bean객체들을 스캔하여 객체화
  • 객체의 라이프사이클 관리, 객체 조립, AOP, 국제화, EJB 연동 지원
    - AOP(Aspect Oriented Programming): 관점지향프로그래밍.
    여러군데에서 사용되는 중복 코드를 분리하고 method는 본연의 기능만 충실하자는 개념.
    - 중복코드를 aspect라고 부름

WebApplicationContext 인터페이스

  • 웹 애플리케이션 환경에 특화되어있는 Application Context
  • 제공기능은 ApplicationContext와 동일

주요 API

Object getBean(String name)

  • 스프링 컨테이너에서 지정된 이름에 해당하는 객체를 가져옴

T getBean(String name, Class<T> requiredType)

  • 스프링 컨테이너에서 지정된 이름, 지정된 클래스타입의 객체를 가져옴

참고
https://jforj.tistory.com/50
https://taesan94.tistory.com/86?category=364478

0개의 댓글