Spring의 전체적인 실행 순서
Request -> DispatcherServlet -> HandlerMapping -> (Controller -> Service -> DAO -> DB -> DAO -> Service -> Controller) -> DispatcherServlet -> ViewResolver -> View -> DispatcherServlet -> Response
1. 클라이언트가 Request 요청을 하면, DispatcherServlet이 요청을 가로챈다.
이때가 web.xml에.
최초의 web.xml 에서는 <url-pattern>이 '/'와 같이 해당 애플리케이션의 모든 URL로 등록돼있기 때문에, 만약 *. do와 같이 특정 URL만 적용하고 싶다면 <url-pattern>의 내용을 바꿔주어 범위를 변경하면 된다.
2. DispatcherServlet이 가로챈 요청을 HandlerMapping에게 보내 해당 요청을 처리할 수 있는 Controller를 찾는다.
3. 실제 로직 처리 (Controller -> Service -> DAO -> DB -> DAO -> Service -> Controller)
4. 로직 처리 후 ViewResolver를 통해 view 화면을 찾는다.
5. 찾은 view 화면을 View에 보내면 이 결과를 다시 DispatcherServlet에 보내고, DispatcherServlet는 최종 클라이언트에게 전송한다.
실제 로직 처리
Controller
Controller는 사용자(Client)의 요청(Request)을 어떻게 처리할지(Handling) 결정하는 역할.
쉽게 설명하자면 사용자가 한식, 중식, 일식 중 하나를 주문했을 경우 그것이 한식이라면 한식 접수계에서 주문을 검토하여 한식 주방에서 사용자가 주문한 한식 요리가 나오면 배송 태그를 부착하는 역할.
만약 주문한 음식이 중식이라면 마찬가지로 중식 접수계에서 주문을 검토하여 중식 주방에서 사용자가 주문한 중식 요리가 나오면 배송 태그를 부착하는 역할을 하는 것이다.
@Controller : 어노테이션을 붙이면 servlet-context.xml에서 이것을 인식하여 컨트롤러로 등록함.
@RequestMapping : 스프링은 HandlerMppaing에 의해 컨트롤러가 결정된다. 이 컨트롤러에서 HandlerAdapter에 의해 실행 메서드가 결정되는 데 @RequestMapping 어노테이션이 그 정보를 제공해 준다. value에 해당하는 url이 GET 방식으로 요청이 들어올 때 해당 메서드를 실행한다.
코드 변경 예시
- 빨간색 네모가 수정할 부분
- 파란색 네모는 참고할 부분
SQL
1. DAO 호출할 ID
2. 프로젝트에 맞는 칼럼으로 변경
3. 별명(또 하나의 이름). COUNT ID 대신 TOTAL_COUNT로 사용하겠다고 정의. 즉, 코딩 시 COUNT ID를 활용하는 것이 아니라 TOTAL_COUNT를 사용해서 코딩해야 함.
class
SQL문에서 사용할 칼럼을 변수(get, set)로 잡아주는 역할
VO
import List는 VO를 사용할 때 List Type을 사용하여 여러 FormTag를 리스트(배열)로 받을 수 있다.
SimpleBoardVO는 SimpleBoard는 상속받는다고 다시 한번 정의한다.
DAO
Service
Imple
Controller
simpleBoardVO라고 생성한 빈집에 getSimpleBoardList라는 데이터를 담아주는 작업 진행
JSP
'개발자였던 것 > Spring' 카테고리의 다른 글
스프링 sqlSessionFactory 오류 (스프링 mapper 오류) (0) | 2020.12.24 |
---|---|
@RunWith(SpringJUnit4ClassRunner.class) 에러 (0) | 2020.08.05 |
프로젝트 빨간 느낌표 해결하기 (0) | 2020.08.04 |
개발을 위한 준비 / 개발 환경설정 (0) | 2020.07.30 |
Java Configuration 사용하기 (@Configuration) (0) | 2020.07.29 |