Spring Framwork
자바 플랫폼을 위한 오픈소스 애플리케이션 프레임워크로 간단하게 스프링 이라고 불린다.
동적은 웹 사이트를 개발하기 위한 여러 가지 서비스를 제공하고 있으며 대한민국 공공기관의 웹 서비스 개발 시 사용을 권장하고 있는 전자정부 표준프레임워크의 기반 기술로 쓰이고있다.
Spring Framework의 특징
DI (Dependency Injection) |
설정 파일이나 어노테이션을 통해 객체간의 의존 관계를 설정하여 개발자가 직접 의존하는 객체를 생성할 필요가 없다 |
Spring AOP (Aspect Oriented Programming) |
트랜잭션, 로깅, 보안 등 여러 모듈, 여러 계층에서 공통으로 필요로 하는 기능의 경우 해당 기능들을 분리하여 관리한다. |
Spring JDBC | Mybatis나 Hibernate 등의 데이터베이스를 처리하는 영속성 프레임워크와 연결할 수 있는 인터페이스를 제공한다. |
Spring MVC | MVC 디자인 패턴을 통해 웹 어플리케이션의 Model, View, Controller 사이의 의존 관계를 DI 컨테이너에서 관리하여 개발자가 아닌 서버가 객체들을 관리하는 웹 애플리케이션을 구축 할 수 있다. |
Spring 구성 모듈
Core Container
Spring의 핵심 부분이라고 할 수 있으며 모든 스프링 관련 모듈은 이 Core Container 기반으로 구축된다.
Spring의 근간이 되는 IoC(또는 DI) 기능을 지원하는 영역을 담당하고 있다. BeanFactory를 기반으로 Bean 클래스 들을 제어할 수 있는 기능을 지원한다.
AOP 계층
Spring에서 각 흐름 간 공통된 코드를 한쪽으로 빼내어 필요한 시점에 해당 코드를 첨부하게 하기 위해 지원하는 계층으로, 별도의 proxy를 두어 동작한다. 이를 통해 객체간의 결합도를 낮출 수 있다.
Data 접근 계층
JDBC나 데이터베이스에 연결하는 모듈로, Data 트랜잭션에 해당하는 기능을 담당하여 영속성 프레임워크의 연결을 담당한다.
Web 계층(MVC / Remoting)
Spring Framework에서 Servlet, Struts 등 웹 구현 기술과의 연결점을 Spring MVC 구성으로 지원하기 위해 제공되는 모듈 계층이다.
또한 스프링의 리모팅 기술로 RMI, Hessian, Burlap, JAX-WS, HTTP 호출자 그리고 REST API 모듈을 제공한다.
Spring 모듈 표
모듈명 | 내용 |
spring-beans | 스프링 컨테이너를 이용해서 객체를 생성하는 기본기능을 제공 |
spring-context | 객체생성, 라이프 사이클 처리, 스키마 확장 등의 기능을 제공 |
spring-aop | AOP 기능을 제공 |
spring-web | REST 클라이언트 데이터 변환 처리, 서블릿 필터, 파일 업로드 지원 등 웹 개발에 필요한 기반 기능을 제공 |
spring-webmvc | 스프링 기반의 MVC 프레임워크, 웹 애플리케이션을 개발하는데 필요한 컨트롤러, 뷰 구현을 제공 |
spring-websocket | 스프링 MVC에서 웹 소켓 연동을 처리할 수 있도록 제공 |
spring-oxm | XML과 자바 객체간의 매핑을 처리하기 위한 API 제공 |
spring-tx | 트랜잭션 처리를 위한 추상 레이어를 제공 |
spring-jdbc | JDBC 프로그래밍을 보다 쉽게 할 수 있는 템플릿 제공 |
spring-orm | Hibernate, JPA, Mybatis 등과의 연동을 지원 |
spring-jms | JMS 서버와 메세지를 쉽게 주고 받을 수 있도록 하기 위한 템플릿 |
spring-context-support | 스케쥴링, 메일발송, 캐시연동, 벨로시티 등 부가 기능을 제공 |
Spring의 동작 방식
xml 파일
Spring 컨테이터 구동 시 한개의 spring 환경 설정된 xml파일을 불러오는데 이 파일에 bean, aop, transaction 등 여러 사항을 다 작성하여 구동하는 방식
@Annotation
xml파일에는 구동 시킬 필수요소만 작성하고 소스코드에 Annotation으로 표시하여 구동하는 방식
Spring MVC
Spring Framework 에서는 클라이언트의 화면을 표현하기 위한 view와 서비스를 수행하기 위한 개발 로직 부분을 나누는 MVC2 패턴을 지원한다.
또한 Model, View, Controller 사이의 의존 관계를 DI 컨테이너에서 관리하여 유연한 웹 애플리케이션을 쉽게 구현 및 개발할 수 있다.
후기...
생각보다 ..스프링이 많이 복잡하였고 눈에 안보여서 스프링에서 대신작업을해줘가지구 ..
뭔가좀 어려웠지만.. 능숙해지게되면 마이바티스와같이 코드 간소화를 시켜줘 편하게 개발을ㅇ 진행할수있을것같다.
'프로그래밍 > Spring' 카테고리의 다른 글
Spring - 6_1. Spring JDBC (Annotation) (0) | 2021.10.22 |
---|---|
Spring - 5. Spring IOC (0) | 2021.10.18 |
Spring - 4. Spring IOC (0) | 2021.10.15 |
Spring - 2. STS3 다운,설치하기 (0) | 2021.10.15 |
Spring - 1. jar파일 다운로드 (0) | 2021.10.15 |