Java 기반 어플리케이션 개발을 지원하는 오픈소스 어플리케이션 프레임워크
서블릿의 생명 주기를 관리하는 서블릿 컨테이너와 비슷하게 bean의 생성과 관리를 해주는 컨테이너 역할을 한다.
설명 | 모듈/아티팩트 | |
---|---|---|
Spring Core | Core 모듈은 DI와 IoC 패턴을 적용할 수 있는 기본적인 클래스들을 포함하며 항상 직간접적으로 Spring Core에 대한 종속성을 가지게 된다. | spring-core |
Spring Beans | Bean 모듈은 모든 bean 객체의 생명주기를 관리한다.. 빈 팩토리(BeanFactory)는 bean의 인스턴스를생성하거나 bean의 의존성 문제를 해결하는 역할을 가진다. | spring-beans |
Spring Context | Context 모듈은 Bean 객체들의 의존성 주입을 담당한다. Spring이 실행될때 Spring Context 모듈이 실행되며 ApplicaionContext라고 불린다. | spring-context |
SpEL | EL(Expression Language, 표현 언어)을 확장하고 빈 속성 및 접근, 처리를 위한 언어를 제공한다. | spring-expression |
데이터베이스, XML 또는 Messaging을 포함한 다양한 형태의 데이터에 접근하기 용이하도록 하는 모듈의 모음이다.
설명 | 모듈/아티팩트 | |
---|---|---|
JDBC (Java Database Connectivity) | Spring JDBC는 JDBC API에 대해 추상화를 제공한다. JdbcTemplate도 제공하여 데이터에 쉽게 접근 가능 하도록 한다. | spring-jdbc |
ORM (Object Relational Mapping) | JPA (Java Persistence API), JDO (Java Data Objects), Hibernate와 같은ORM API를 위한 통합레이어를 제공한다. | spring-orm |
OXM (Object XML Mapping) | JAXB, Castor, XMLBeans, JiBX, XStream과 같은Object/XML 매핑을 지원한다. | spring-oxm |
JMS (Java Message Service) | 메시지 생산(Producing)과 소비(Consuming)를 위한 기능을 제공한다.Spring Framework 4.1 부터는 spring-messaging과의 통합을 제공한다. | spring-jms |
Spring Transactions | 데이터베이스 뿐만 아니라 객체 트랜젝션을 균일하게 관리해준다. 프로그래밍 방식과 선언적 트랜잭션 관리를 모두 지원한다. | spring-tx |
Web Application을 빌드할 때 사용하는 컴포넌트로, 자체 MVC 프레임워크인
Spring MVC
를 제공한다.
설명 | 모듈/아티팩트 | |
---|---|---|
Spring Web | 멀티파트 파일 업로드와 IoC 컨테이느를 초기화 하는 등 기본 웹 기능을 제공한다. 다른 웹 프레임워크와의 통합을 제공한다. | spring-web |
Spring Web Servlet | 자체 MVC 프레임워크를 제공한다. Spring MVC, REST 웹 서비스를 구현을 포함한다. | spring-webmvc |
Spring Web Sockets | 웹 소켓을 지원한다. | spring-websocket |
Portlet | 포틀릿 환경에서 사용할 MVC 구현을 제공한다. | spring-webmvc-portlet |
사용 | 모듈/아티팩트 | |
---|---|---|
AOP | AOP(Aspect Oriented Programming, 관점지향 프로그래밍)에 대한 기본적인 기능을 제공한다. | spring-aop |
Aspects | 인기있는 AOP 프레임워크인 AspectJ와의 통합을 제공한다. | spring-aspects |
Instrument | 기본적인 instrumentation을 제공한다.(Byte Code Instrumentation: 런타임이나 로딩 때 클래스의 바이트코드를 변경하는 것) | spring-instrument |
Test | 단위 및 통합 테스트에 대한 기본적인 기능을 제공한다. | spring-test |
Messaging | 메시지 기반 애플리케이션을 작성할 수 있는 기능을 제공한다. | spring-messaging |
📎 참고 링크