[SpringBoot 2.0] - 스프링 프레임워크

h220101·2022년 5월 30일
0

스프링 프레임워크

JAVA 엔터프라이즈 개발을 편하게 해주는 오픈소스 경량급 애플리케이션 프레임워크


📌 3대 핵심기술

Plain Old Java Object (POJO)
오래된 방식의 간단한 자바 객체 -getter, setter, 멤버변수

1. Portable Service Abstraction (PSA)
서비스 추상화

2. Inversion of Control (IOC) / Dl
-제어의 역전
-객체의 생성, 생명주기의 관리까지 모든객체를 프레임워크가 관리한다.

2-1. Dl
-각 클래스간의 의존관계를 빈 설정 <- 개발자설정 (xml, annotation)
설정정보를 바탕으로 컨테이너가 자동으로 연결

3. Aspect Oriented Programing (AOP)
관점지향 프로그래밍
-모듈성을 높일 목적으로 서로다른 관심사를 분리하는 프로그래밍 패러다임


스프링 프레임워크 - 컨테이너

Spring Contatiner - IOC (Inversion of Control)
Bean을 담는 그릇.
빈 팩토리, 어플리케이션 컨텍스트에서 객체가 생성, 소멸, 주입된다.

  • BeanFactory
    빈팩토리 인터페이스는 IOC컨테이너 기능을 정의하고 있는 인터페이스이며,
    빈의 생성 및 의존성 주입, 생명주기 관리 등의 기능을 제공한다.
    빈: IOC컨테이너에 의해 생성되어 관리되는 객체

  • ApplicationContext
    빈팩토리 인터페이스를 상속받는 어플리케이션 컨텍스트는
    빈팩토리가 제공하는 기능 외 AOP, 메세지처리, 이벤트처리 등 기능제공 = 핵심

  • ApplicationContext 생성예제
    ApplicationContext context = new ClassPathXmlApplicationContext("config/bean.xml");
    MyBean bean = context.getBean("myBean");


인스턴스 스코프(범위)를 제어할 수 있다.

(인스턴스를 싱클톤(계속하여 생존) 으로 할 것인지,
매번 새로 생성할 것인지에 대한 사항)

인스턴스 라이프 사이클(생명주기)을 이벤트로 제어할 수 있다.

(EX. 인스턴스를 생성할 때와 인스턴스를 소멸할 때 이벤트 처리)

공통처리를 포함할 수 있다.

(EX. 트랜잭션 관리나 로깅관리)

공통처리를 포함할 수 있다.

(EX. 트랜잭션 관리나 로깅관리)

객체사이의 의존관계가 느슨해진다.



스프링 프레임워크 - AOP

ASPECT(관점)의 주 목적은 '횡단 관심사'의 모듈화에 있다.
'횡단 관심사'란? 한 어플리케이션의 여러부분에 영향을 주는 기능이다.
일례로,
'보안'은 하나의 어플리케이션 내에서 여러객체 메소드의 보안규칙에 영향을 미치는 '횡단 관심사'이다.

스프링 프레임워크 - DI

DI (Dependency Injection)
각 클래스 간 의존관계를 빈 설정 <-개발자가 설정(xml, annotation)
설정정보를 바탕으로 컨테이너가 자동으로 연결한다.

  • Setter Injection
    의존성을 입력받는 setter메서드를 만들고 이를 통해 의존성을 주입한다.

  • Constructor Injection
    필요한 의존성을 포함하는 클래스의 생성자를 만들고, 이를 통해 의존성을 주입한다.

  • Method Injection
    의존성을 입력받는 일반메서드를 만들고, 이를 통해 의존성을 주입한다.

profile
기록하는 삶

0개의 댓글