Spring FrameWork 개요
- 자바 플랫폼을 위한 오픈 소스 어플리케이션 프레임워크
- 전자정부 표준 프레임워크(Spring MVC Project기반 프레임워크)의 기반 기술로서 쓰이고 있음
IOC(Inversion of Control) : 반전 제어
객체의 생성부터 모든 생명주기의 관리까지 프레임워크가 주도하고 호출할 수 있음.
DI(Dependency Injection) : 의존성 주입
설정 파일이나 어노테이션을 통해 객체간의 의존 관계를 설정하여 개발자가 직접 의존하는 객체 생성을 할 필요가 없음
POJO 기반 프레임워크
순수 자바 객체를 의미하며 특정 클래스에 종속되지 않으므로 자바의 객체지향적 설계가 쉬워짐
Spring AOP(Aspert Oriental Programming) 관점지향 : 프로그램
트랜잭션, 로깅, 보안 등 여러 모듈, 여러 계층에서 공통으로 필요로 하는
기능의 경우 해당 기능들을 분리하여 관리한다.PSA(Portable Service Abstraction)
스프링은 다른 여러 모듈을 사용함에 있어 별도의 추상화 레이어를 제공한다 JPA 사용시 Spring JPA를 사용하여 추상화하므로 모듈 의존 없이 프로그램에 집중가능
Spring의 구성모듈
Spring MVC
✔ Spring MVC 요청 처리 과정
❗Spring 기본적인 흐름이해Handler Mapping
요청 매핑 정보를 관리하고, 요청이 왔을 때 이를 처리하는 대상(Handler)를 찾는 클래스
1) Client에서 Request한 내용을 Dispatcher Servlet에서 받는다
2) Dispatcher Servlet에서 Controller를 선택하는 일을 @RequestMapping을 통해 Handler Mapping에게 요청한다
3) Controller을 찾아 Dispatcher Servlet으로 이동
4) Dispatcher Servlet이 Client에게 받은 요청을 Controller에게 위임Controller
Controller : 요청/응답을 제어하는 역활을 하는 클래스
POJO 기반 프레임워크 : 외부 라이브러리 상속 X
Return 값으로 redirect:/ || member/SignUp
[위치에 따른 해석]
- 클래스 레벨 : 공통 주소
- 메서드 레벨 : 공통 주소 외 나머지 주소
단, 클래스레벨에 @RequestMapping이 존재하지 않는다면
- 메서드 레벨 : 단독 요청 처리 주소1) Controller는 @Controller를 통해 Bean으로 등록
2) @RequestMapping("url")를 통해 localhost:8080/comm/url 이하의 요청을 처리
3)@PostMapping("/login") public String login( @ModelAttribute Member memberEmail) { logger.info("로그인 기능 수행됨"); return "redirect:/"; return "member/signUp"; }
View Resolver
컨트롤러에서 jsp로 렌더링하는 것을 처리하는 부분
컨트롤러의 응답을 jsp로 보낼 때 어떻게 처리할것인가? 를 작성하는 부분
==> View Resolver : Controller에서 반환된 문자열 앞/뒤에 접두사(prefix), 접미사(suffix)를 추가하여 만들어진 경로의 jsp로 요청을 위임(forward)1) Controller의 return값은 Dispatcher Servlet을 거쳐 View Resolver로 이동
2) 만약 return값이 "member/login" 이라면 접두사(prefix), 접미사(suffix)가 붙어 /WEB-INF/views/member/signUp.jsp로 이동
3) return값이 redirect:/라면 최상위로 재요청