- 자바 기반 오픈소스 프레임워크
- 20개 이상의 다양한 모듈을 조합하여 프로그래밍 수행
- 스프링 프레임워크 아키텍쳐
- Data Access/Integration
- JDBC
- ORM
- OXM
- JMS
- Transactions
- Web
- WebSocket
- Servlet
- Web
- Portiet
- AOP
- Core Container
- Messaging’
- 경량 컨테이너 지원
@Configuration
public class AppConfig {
@Bean
public OrderService orderService() {
return new OrderServiceImpl(discountPolicy());
}
@Bean
public FixDiscountPolicy discouintPolicy() {
return new FixDiscountPolicy
}
}
- 제어의 역행 지원
- 함수나 객체의 호출 제어권이 사용자가 아닌 스프링 프레임워크에서 제어가능
- 의존성 주입 지원
- 각각의 계층이나 서비스 간에 의존성이 존재할 경우 프레임워크가 서로 연결
- 관점지향 프로그래밍(AOP) 지원
- 스프링 빈에만 적용 가능한 AOP를 사용할때 연동되고 엔터프라이즈 애플리케이션에서 가장 흔한 문제 (중복코드, 프록시 클래스 작성의 번거러움, 객체들 간 관계 복잡도 증가, 이벤트 처리) 에 대한 해결책을 지원
- 트랜젝션, 로깅, 보안 등 여러 모듈에서 공통적으로 사용되는 기능을 분리하여 관리 가능
- 환경설정의 복잡성 최소화
- 스프링 구현에 필요한 다양한 라이브러리를 패키징하여 쉽게 의존성 추가 및 제거 가능
- starter 명령어를 통해 패키징
- starter는 의존성과 설정을 자동화해주는 모듈
- 주요 설정은 application.properties 파일에 적용
- Maven과 Gradle 지원
- Gradle은 메이븐의 xml 형태를 보다 설정하기 위해 프로그래밍 코드와 유사하게 환경설정할 수 있도록 구현된 빌드 툴
댓글