on
[Spring] spring-projects/spring-petclinic
[Spring] spring-projects/spring-petclinic
https://github.com/spring-projects/spring-petclinic
https://www.inflearn.com/course/spring_revised_edition/dashboard
git 프로젝트 빌드 / 실행
git clone https://github.com/spring-projects/spring-petclinic cd spring-petclinic ./mvnw package java -jar target/*.jar
localhost:8080 접속
로그 레벨을 INFO -> DEBUG 로 낮추어 로그 살펴보기
/spring-petclinic/src/main/resources/application.properties 수정
#logging.level.org.springframework=INFO logging.level.org.springframework.web=DEBUG
Find Owners > Add Owner 클릭했을 때의 로그 살펴보기
2021-11-28 15:07:12.107 DEBUG 64016 --- [nio-8080-exec-4] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped to org.springframework.samples.petclinic.owner.OwnerController#initFindForm(Map) 2021-11-28 15:07:12.114 DEBUG 64016 --- [nio-8080-exec-4] o.s.w.s.v.ContentNegotiatingViewResolver : Selected 'text/html' given [text/html, application/xhtml+xml, image/avif, image/webp, application/xml;q=0.9, */*;q=0.8] 2021-11-28 15:07:12.204 DEBUG 64016 --- [nio-8080-exec-4] o.s.web.servlet.DispatcherServlet : Completed 200 OK 2021-11-28 15:07:13.937 DEBUG 64016 --- [nio-8080-exec-5] o.s.web.servlet.DispatcherServlet : GET "/owners/new", parameters={} 2021-11-28 15:07:13.941 DEBUG 64016 --- [nio-8080-exec-5] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped to org.springframework.samples.petclinic.owner.OwnerController#initCreationForm(Map) 2021-11-28 15:07:13.944 DEBUG 64016 --- [nio-8080-exec-5] o.s.w.s.v.ContentNegotiatingViewResolver : Selected 'text/html' given [text/html, application/xhtml+xml, image/avif, image/webp, application/xml;q=0.9, */*;q=0.8]
org.springframework.samples.petclinic.owner.OwnerController > initCreationForm 이 실행되는 것을 보여준다.
FLOW 살펴보기
1) http://localhost:8080/owners/new 라는 요청(GET)이 오면
2) Spring 내의 DispatcherServelet 으로 가게 되고
3) DispatcherServelet 은 OwnerController 라는 컨트롤러로 가게된다
4) 컨트롤러 내의 GetMapping (Annotation)에 의해 찾게 된다.
private static final String VIEWS_OWNER_CREATE_OR_UPDATE_FORM = "owners/createOrUpdateOwnerForm"; ... @GetMapping("/owners/new") public String initCreationForm(Map model) { Owner owner = new Owner(); model.put("owner", owner); return VIEWS_OWNER_CREATE_OR_UPDATE_FORM; }
5) Owner 객체를 만들어 Model 안으로 넣어주고 owners/createOrUpdateOwnerForm 을 리턴한다.
6) 5)의 /spring-petclinic/src/main/resources/templates/owners/createOrUpdateOwnerForm.html 을 화면에 출력
Owner Add Owner
from http://yon2ive.tistory.com/39 by ccl(A) rewrite - 2021-11-28 15:27:43