Spring의 주요 기능 / 특징
Spring MVC
-
MVC: 웹 어플리케이션 개발 디자인 패턴
- MVC는 Model / View / Controller 의 약자
- model, view, controller 들이 유기적으로 동작
-
개발자가 직접 컴포넌트를 호출하지 않아도 자동으로 불러주며, 반복적인 작업을 줄여줌 - 따라서 개발자는 핵심 로직에 집중할 수 있음
[Spring MVC의 처리 과정]
- DispatcherServlet이 클라이언트로 부터 요청을 받음
- HandlerMapping을 통해 요청에 해당하는 Controller를 찾고
- 해당 Controller로 요청을 보냄
- Contoller에서 작업을 수행한 후 ModelAndView를 반환
- ViewResolver에서 사용자에게 보여줄 View를 결정
- DispatcherServlet이 View를 호출
- 클라이언트에 해당 View가 보여짐
DI
[Dependency Injection, 의존성 주입]
- Setter Injection
- xml 설정파일에 <property> 이용하여 설정
- Construction Injection
- xml 설정파일에서 <constructor-arg> 에 설정
- 또는 \@Autowired 어노테이션 이용해서 수행 할 수 있음
AOP
[Aspect Oriented Programmin, 관점 지향 프로그래밍]
- JAVA의 경우 다중 상속이 불가능 하기 때문에 공통 기능을 상속 받는 것에 한계가 있는 경우가 생김
- OOP 만으로 해결할 수 없는 의존관계의 복잡성과 코드 중복을 해결하기 위한 방법
- 핵심 기능과 공통기능을 분리하여,
공통 기능을 필요로 하는 핵심 기능들에서 사용하는 방식 - 공통 모듈을 여러 코드에 적용하는 기법
POJO
[Plain Old Java Object]
스프링 컨테이너에 저장되는 자바 객체는 특정한 인터페이스를 구현하거나 클래스를 상속받지 않아도 된다.
따라서 기존에 작성한 클래스를 수정할 필요 없이 스프링에서 사용할 수 있다.