오늘은 Spring Boot 3번째 시간입니다.
Today I Learned
- Tiles Library
- 스프링의 흐름 이해하기
Tiles Library
- 기존 페이지 모듈 집중화의 문제점 해결
- 레이아웃 + 콘텐트를 각각 분리해서 만든뒤 조합해서 사용할거야(마치 타일을 가져다 이어 붙이듯이)
- 레이아웃이 중심 + 헤더,푸터,어사이드,비주얼,메인컨텐츠 를 붙임
- 의존성 라이브러리 추가

- tiles 설정을 위한 tiles.xml(/WEB-INF/tiles.xml) 생성

- controller view return을 타일과 연결
- tiles.xml에서 definition name과 각 attribute의 value(경로)가 공통된 부분들은 * 을 통해서 집중화 할 수 있다.
- name에 * 로 지정한 경로의 경우 *의 갯수에 따라, {1},{2} 순서대로 value의 경로에 매핑해주면 된다.


- tiles 인스턴스를 생성하여 tiles가 작동되도록 하기

스프링의 흐름 이해하기(출처: 뉴렉처)

- 클라이언트로부터 요청 > 모든 url을 Dispatcher에서 받아들임 > 요청 매핑 정보에 따라, 각 컨트롤러 메소드 호출(컨트롤러 객체 생성, IoC에 요청<request>을 handling하기 위한 객체가 준비되어있음) > 컨트롤러에서 model(값)과 view를 return 받음 > return받은 view를 생성해주기 위해 Dispatcher는 viewResolver를 찾음 > 이때 기본적으로 존재하는 viewResolver가 있지만, viewResolver중에서도 setOrder가 1번으로 설정되어있는 viewResolver를 찾게됨.(현재 실습내용의 경우 TilesViewResolver) > TilesViewResolver는 리턴받은 view의 이름과, tilesConfigurer()로 설정된 tiles설정파일인 tiles.xml에서 매칭이 되는 이름이 있는지를 확인 한 뒤 있다면 해당 view를 전달한다.(만약 이 리졸버에서 view의 이름과 매칭되는것이 없다면, 기본 viewResolver에게 다시 확인하고, 그래도 없다면 404에러를 반환한다)