Spring

[Spring Architecture DI] Spring Framework 구조

sujin7837 2022. 4. 19. 22:19
반응형

Spring 삼각형

Enterprise Application 개발 시에 복잡함을 해결하는 Spring의 핵심

1. POJO(Plain Old Java Object)

-특정 환경이나 기술에 종속적이지 않은 객체지향 원리에 충실한 자바 객체

-테스트하기 용이하며, 객체지향 설계를 자유롭게 적용할 수 있음

 

2. PSA(Portable Service Abstraction)

-환경과 세부기술의 변경과 관계없이 일관된 방식으로 기술에 접근할 수 있게 해주는 설계 원칙

-트랜잭션 추상화, OXM 추상화, 데이터 액세스의 Exception 변환 기능 등 기술적 복잡함은 추상화를 통해 Low level의 기술 구현 부분과 기술을 사용하는 인터페이스로 분리

-예를 들어 데이터베이스에 관계 없이 동일하게 적용할 수 있는 트랜잭션 처리 방식

 

3. IoC(Inversion of Control) / DI(Dependency Injection)

-DI는 유연하게 확장 가능한 객체를 만들어 두고 객체 간의 의존 관계는 외부에서 다이나믹하게 설정

 

4. AOP(Aspect Oriented Programming)

-관심사의 분리를 통해서 소프트웨어의 모듈성을 향상

-공통 모듈을 여러 코드에 쉽게 적용 가능

 

Spring Framework Module

 

 

1. Spring Core

-Spring Framework의 핵심 기능을 제공하며, Core 컨테이너의 주요 컴포넌트는 Bean Factory

 

2. Spring Context

-Spring을 컨테이너로 만든 것이 Spring Core의 Bean Factory라면 Spring을 프레임워크로 만든 것은 Context module

-이 module은 국제화된 메시지, Application 생명 주기 이벤트, 유효성 검증 등을 지원함으로써 Bean Factory의 개념을 확장함

 

3. Spring AOP

-설정 관리 기능을 통해 AOP기능을 Spring Framework와 직접 통합시킴

 

4. Spring DAO

-Spring JDBC DAO 추상 레이어는 다른 데이터베이스 벤더들의 예외 핸들링과 오류메시지를 관리하는 중요한 예외 계층을 제공

 

5. Spring ORM

-Spring Framework는 여러 ORM(Object Relational Mapping) Framework에 플러그인 되어, Object Relational 툴(JDO, Hibernate, iBatis)을 제공

 

6. Spring Web

-Web Context module은 Application Context module 상위에 구현되어, Web 기반 Application에 context 제공

 

7. Spring Web MVC

-Spring Framework는 자체적으로 MVC 프레임워크를 제공하고 있음

-스프링만 사용해도 MVC 기반의 웹 어플리케이션 개발 가능

반응형

'Spring' 카테고리의 다른 글

[FileUpload] 파일 업로드  (0) 2022.04.22
[Spring Architecture DI] 의존성 주입(DI)  (0) 2022.04.20
[Spring Architecture DI] IoC  (0) 2022.04.20
[Spring Architecture DI] Container  (0) 2022.04.19
[Spring Architecture DI] Spring 등장 배경  (0) 2022.04.19