[Spring] 스프링이란??
Spring framework
- 자바 엔터프라이즈 개발을 위한 오픈 소스 애플리케이션 프레임워크를 말한다.
- 자바 객체를 담고 있는 경량 컨테이너로서 자바 객체의 생성, 소멸과 같은 라이프 사이클을 관리하는 역할이다.
- DI(Dependency Injection), AOP(Aspect Oriented Programming), MVC(Model View Controller), 트랜잭션, 보안 등의 기능을 지원한다.
- 스프링프레임워크는 사용자가 아니라 프레임워크에 컨트럴 제어권이 있어서 필요에 따라 스프링에서 사용자의 코드를 호출할 수 있다. 이를 IOC 제어의 역흐름이라고 한다.
주요 특징
- 컨테이너 역할을 수행
- spring 컨테이너는 객체의 라이프스타일을 관리하고 컨테이너로부터 필요한 객체를 가져와 사용할 수 있다.
- 의존성 주입(Dependency Injection)
- 설정파일이나 어노테이션을 통해서 객체 간의 의존관계를 설정한다.
- 관점 지향 프로그래밍(AOP : Aspect-Oriented Programming)
- 트랜잭션이나 로깅, 보안과 같이 여러 모듈에서 공통적으로 사용하는 기능의 경우 해당 기능을 분리하여 관리한다.
- POJO 지원(Plain Old Java Object)
- 컨테이너에 저장되는 java객체는 특정한 인터페이스를 구현하거나 특정 클래스를 상속받지 않아도 된다.
Spring framework 구조
1)Spring core
스프링 컨테이너를 의미하며 스프링 프레임워크의 핵심이기도 하다. 안에는 context.beans이 있다.
2)Spring Context
context정보를 제공하는 설정파일로 JNDI, EJB, Validation, Scheduling, Internalization 등의 서비스를 제공한다.
3) Spring AOP
공통의 관심 사항을 적용하여 발생하는 의존관계의 복잡성과 코드 중복을 해소해주는 프로그래밍 기법을 의미한다.
4)Spring DAO
JDBC 추상화 계층을 제공하여 코드나 예외처리부분을 간편화하는 방법
5)Spring ORM(object relational mapping)
Hibernate, JAP, JDO, MyBatis 등을 지원한다.
6)Spring web
일반적인 웹 애플리케이션 개발에 필요한 기능 제공
7)Spring MVC
Model2 구조로 애플리케이션을 만들 수 있도록 지원함
'Framework > Spring' 카테고리의 다른 글
[Spring] @Controller @RequestMapping @GetMapping @PostMapping (0) | 2020.12.01 |
---|---|
[Spring] Spring Web MVC (0) | 2020.11.25 |
[Spring] xml을 기반으로 한 bean 설정하기(1) (0) | 2020.11.24 |
[Spring] 스프링 컨테이너 & DI(Dependency Injection) (0) | 2020.11.24 |
댓글