keembloo

Spring 아키텍처 본문

Spring

Spring 아키텍처

keembloo 2023. 10. 17. 09:48
728x90

Spring MVC 레이어 

1. 웹 레이어 / Presentation Layer 

컨트롤러, view[JSP , templates , html]

 

2. 서비스 레이어 / Business Layer

로직

 

3. 리포지토리 레이어

imtertaces [ dao , repository ]

 

 


  • DTO(Data Transfer Object) : 클라이언트와 서버 간 데이터 전송을 위해 설계된 객체
  • Entity : 데이터베이스에 저장되는 데이터 객체로, 데이터베이스와 직접적으로 연결

Spring 아키텍처

 

1. DispatcherServlet(프론트 컨트롤러): http 형식의 요청이 들어오면 컨트롤러를 찾아준다.

 

2. Handler Mapping : 인터페이스이다.

요청받은 http경로(URL)를 분석하여 가장 적합한 Controller와 매핑

어떤 요청에 어떤 컨트롤러가 동작할지는

xml파일이나 java config 어노테이션으로 설정한다. (bean을 이용하여)

 

3. HandlerAdapter : @RequestMapping을 통하여 해당 컨트롤러에 가장 적합한 메소드를 검색해 실행한다.

 

4. Controller : 요청을 처리한 후 결과를 리턴한다.

 

 

HandlerAdapter 가 Model And View 객체로 변환한다.

Model And View 객체에는 응답에 필요한 데이터정보(Model)와 뷰정보(JSP파일)이 담겨있다.

 

5. view name도 함께 전달

 

6. View Resolver : view name으로 처리결과를 출력할 view(jsp)를 찾는다.

프로젝트내 resource 폴더안에서찾는다만약에 Model이면 8,9번작업을 하지 않는다 (View만 한다)

- Model이면 ViewResolver가 호출되지 않는다


7. View : 응답을 생성한다.

컨텐츠의 타입을 알아서 분류하여 반환(Response)해준다.

여기서일어나는 랜더링은 DTO를 JSON형식으로 바꿔준다는 뜻이다.

 

 

Transaction : 여러개 SQL를 하나의 최소단위로 일처리로 만드는 것

-Commit , Rollback 둘중 하나만 처리한다
- 부분성공은 절대 없다 (Ex) 하나는 성공하고 ,하나는 실패 -> 전부다 취소됨

 

 

 

 

728x90