Spring Overall Quick View
From JCFWiKi
Copyright © 2008 Daewoo Information Systems Co., Ltd. |
목차 |
[편집] 개요 및 특징
- Full-stack JavaEE application Framework
- EJB를 사용하지 않고 middle tier objects를 구성할 수 있는 Light Weight Container
- 단일 DB와 연동하는 경우만 EJB나 JTA 사용 없이 트랜잭션 관리가 가능함
- JDBC or O/R Mapping Product인 TopLink, Hibernate or JDO 구현을 사용하는 프레임워크를 제공
- 스프링의 주요 구성 요소
- Core
- Spring 프레임워크의 근간이 되는 Ioc(또는 DI)기능을 지원하는 영역을 담당.
- BeanFactory를 기반으로 Bean클래스를 제어 할 수 있는 기능을 지원
- Context
- Core 패키지와 마찬가지로 Spring의 기본기능으로 Bean들에 대한 접근방법을 제공
- DAO
- JDBC 기반 하의 DAO 개발을 좀 더 쉽고, 일관된 방법으로 개발하는 것이 가능하도록 지원
- ORM
- Object Relation Mapping 프레임워크인 Hibernate, iBatis, JDO와의 결함을 지원
- AOP
- Spring 프레임워크에 Aspect Oriented Programming을 지원
- Web
- Struts, Webwork와 같은 프레임워크의 통합을 지원하는 부분을 담당
- WebMVC
- Spring 프레임워크에서 독립적으로 Web UI Layer에 Model-View-Controller을 지원하기 위한 기능
[편집] 주요개념
[편집] POJO
- POJO
- 평범한 Java 객체
- 복잡한 EJB 컨테이너에 의존하지 개발자가 쓰기 편한 간단한 Object
- 필수요소
- light-weight (possibly)
- flexible
- simple
- supported by separate optional components such as Hibernate or Spring
[편집] IOC
[편집] AOP
[편집] 스프링 프레임 워크 적용방법
[편집] 설정파일 작성
- web.xml 파일
일반적으로 web.xml에 context 파라미터로 applicationContext.xml 파일의 위치를 제공하고, 스프링 프레임워크의 리스너를 등록하여 스프링 프레임워크를 초기화 한다.
- 이외에 직접 프로그램 상에서 물리적인 xml 파일 위치를 통해서 가져오는 방법과 서블릿 컨텍스트를 통해서 스프링을 초기화 시켜주는 방법이 있다.
<web-app> … <context-param> <param-name>contextConfigLocation</param-name> <param-value> /WEB-INF/classes/config/applicationContext*.xml </param-value> </context-param> <listener> <listener- class>org.springframework.web.context.ContextLoaderListener </listener- class> </listener> ... </web-app>
- ApplicationContext 설정파일
- 스프링 프레임워크의 어플리케이션 컨텍스트를 초기화 하기 위한 XML 파일
- 자바 클래스들과 그들간의 의존성을 정의
- 스프링 프레임워크는 ApplicationContext에 정의된 자바 클래스들을 관리하고 서비스를 제공하기 위한 준비를 한다.
- 어플리케이션에서 공통으로 사용하는 기능들(dataSource관리, tx관리)위한 ApplicationContext.xml 파일과
- 각 모듈에 대한 DI를 관리하기 위한 ApplicationContext_xx.xml 파일이 있다.
[편집] SeviceImpl
- 기본 CRUD
package jcf.biz.user.service; public class UserServiceImpl { /************ PROPERTIES **************/ private UserDAO userDAO; /********* SERVICE METHODS*********/ public void createUser(User user) { userDAO.createUser(user); } public List findUserList() { return userDAO.findUserList(); } public User findUser(String userId) { return userDAO.findUser(userId); } … public void updateUser(User user) { userDAO.updateUser(user); } /************** GETTER & SETTER ****************/ public void setUserDAO(UserDAO dao) { this.userDAO = dao; } }
