controller , Service, ExceptionController, Ailas, 이미지 응답

두부링·2025년 2월 19일

Spring

목록 보기
5/24
post-thumbnail

Controller와 dao

controller의 연관관계

controller <=> dao <=> mapper

Spring의 데이터 담기(controller, dao 담기)

  • 입력한 내용을 받을려면 request 영역에 담고 dto 에 담아야 한다.
  • Spring은 이 작업을 대신 해준다.

    - 요소의 name 이랑 dto의 필드랑 같아야 setter가 실행된다.
  • dto의 필드에 파라미터 값이 담겨져 있다.
  • Mybatis에 하나의 데이터는 그냥 전달해도 괜찮다. 하지만 2개 이상의 데이터는 dto, map에 담아서 전달해야 한다.
  • 파라미터 타입 알려주기
  • #{} = ?

    Mybatis 에 전달할 파라미터가 1개면 그냥, 2개 이상이면 dto 혹은 map에 담기
    그리고 파라미터 타입을 Mybatis에 알려주기

thymeleaf와 jsp로 설정 변경 과정

  • dependcy jsp 필요 라이브러리 준비
  • thymeleaf 주석처리
  • 프로젝트 update project 하기

    thymeleaf와 jsp로 서로 왔다갔다 하면 update project 하기

Service

연관관계

  • controller <=> service <=> dao <=> mapper

    controller 와 dao 사이에서 service를 추가해서 dao를 조작한다.

  1. controller에서 service 사용
  2. 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 작성할 때 간편하게 사용할 수 있다.

이미지 응답

  1. 환경설정

  2. 파일 객체

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

    제출되면서 임시파일에 저장이 된다.

Spring 파일 업로드 프로세스

  1. 사용자가 파일을 업로드 ()
  2. Spring이 임시 저장소에 저장 (MultipartFile 객체 생성됨)
  3. 개발자가 원하는 경로로 이동 (transferTo() 사용)
  4. 파일명을 설정하거나 변경 (UUID 사용 가능)
  5. 필요하면 DB에 파일 경로 저장

보완

  1. Map
  2. @Repository : Dao에 붙히는 어노테이션
  3. @Autowired : 주입한다.

profile
하이하잉

0개의 댓글