[Spring] 스프링 1주차 강의 - Spring MVC

이해찬·2023년 6월 26일
0

항해일지

목록 보기
14/35

23.06.26 - D+26, Spring MVC

기록양식 (TIL)
1. 사용 개념
2. 의문점 or 문제
3. 시도해 본 것들(+응용) or 삽질
4. 해결
5. 알게 된 점(회고)

MVC, 클라이언트와 서버


Front controller를 쓰기전에 survlet의 작동방식

왼: Servlet 오: DispatcherServlet Controller


MVC를 통해 어떻게 데이터를 관리?

개념만 봐서는 무슨 말인지 이해가 안간다. 저거를 활용해서 뭐를 도대체 한다는 것인지


코드를 통해서 코드에 개념을 대입해서 이해

  1. 클라이언트가 서버에 요청을 한다.
  2. 요청한 데이터는 DispatcherServlet 을 거쳐 Handler Mapping으로 넘어간다 /api/주소getmapping postmapping 등의 명령어를 컨트롤러에서 import 시킨다.
  3. 요청받은 데이터를 Controller 에서 중간다리? 역할을 한다.
    3-1. 데이터와 연결된 entity / class , 사용자 요청인 dto / request,response 를 종합하여 데이터와, view정보를 DispatcherServlet 에 전송 >
  4. view resolver view 를 통해 서버에서 클라이언트로 response 보낸다.

📟 예제

1.	@Controller
	public class HelloController {
2.    	@GetMapping("/api/hello")
3.    	@ResponseBody
    	public String hello() {
       	 return "Hello World!";
    }
}
  1. @Controller >컨트롤러 부여
  2. @GetMapping("/api/hello") 클라이언트로부터 받은 /api/helloMapping방식으로 가져옴
  3. @ResponseBody 컨트롤러가 반환하는 Java의 객체를 Json형태로 반환
@PutMapping("/memos/{id}")
    public Long updateMemo(@PathVariable Long id, @RequestBody MemoRequestDto requestDto) {
        // 해당 메모가 DB에 존재하는지 확인
        Memo memo = findById(id);
  • RequestBody : 클라이언트 요청의 본문(Body)JSON형태를 > JAVA객체 로 변환
  • ResponseBody : 컨트롤러가 반환하는 Java객체 > JSON 형태로 다시 반환
  • PathVariable : mapping 에서 가져오는 url일부를 메서드의 매개변수로 받기위해 사용 > /memos/P{id} > (@PathVariable Long id~,로 받음
  • Memo memo > 기존 entity 객체에 기본생성자 외에, id를 매개변수로 받는 생성자를 새로 생성해서 id데이터도 받을 수 있게 작성

    결국은 controller내에서 entity <> dto 의 데이터를 주고받고 조정


controller > entity > dto



그리고 나서 SQL을 활용해서 데이터 저장 가능

.
.
.

profile
디자인에서 개발자로

0개의 댓글