Controller와 dao
controller의 연관관계
controller <=> dao <=> mapper
Spring의 데이터 담기(controller, dao 담기)

thymeleaf와 jsp로 설정 변경 과정
- dependcy jsp 필요 라이브러리 준비
- thymeleaf 주석처리
- 프로젝트 update project 하기

thymeleaf와 jsp로 서로 왔다갔다 하면 update project 하기
Service
연관관계
- controller <=> service <=> dao <=> mapper
controller 와 dao 사이에서 service를 추가해서 dao를 조작한다.
- controller에서 service 사용

- service에서는 dao 사용

3.dao에서는 mapper 사용

service는 controller이 사용하는 도구
예외 처리 cotroller
- @ControllerAdvice : 예외처리 controller

RuntimeException & DataAccessException
- 진행이 되도 수정이 안되는 경우가 존재한다면..? 팀원이 내가 수정할 데이터를 삭제할 경우
- RuntimeException을 따로 발생시킨 후 ExceptionController에서 처리

부수작업들...
- 수정, 삭제한 row의 갯수를 받아와서 RuntimeExceptio을 발생

Exception 발생은 dao에서도 발생할 수 있고 service에서도 발생할 수 있다.
컨트롤러에서 하는 일
1. 요청 파라미터 추출
2. Service 객체를 이용해서 로직 처리
3. 응답(view page에서 응답 or 리다일렉트 응답 or json, 파일데이터 등등의 응답)
Alias
- parmetertype , resultType 설정


작성한 Alias를 mapper에서 type 작성할 때 간편하게 사용할 수 있다.
이미지 응답
-
환경설정


-
파일 객체

-
multipart/form-data로 파일을 업로드하는 폼이다.

제출되면서 임시파일에 저장이 된다.
Spring 파일 업로드 프로세스
- 사용자가 파일을 업로드 ()
- Spring이 임시 저장소에 저장 (MultipartFile 객체 생성됨)
- 개발자가 원하는 경로로 이동 (transferTo() 사용)
- 파일명을 설정하거나 변경 (UUID 사용 가능)
- 필요하면 DB에 파일 경로 저장
보완
- Map
- @Repository : Dao에 붙히는 어노테이션
- @Autowired : 주입한다.
