1. Controller 만들기
MemoController 클래스 만들기
- controller 패키지 생성 (com.review.review03 -> controller)
- MemoController 클래스 생성 (service -> MemoController.java)
1) @RequiredArgsConstructor: 반드시 필요한 생성자가 있으면 스프링에서 알아서 생성하도록 권한을 주는 것 (반드시 필요한 것에 final을 붙임)
2) @RestController: REST 방식 처리 (순수 데이터, JSON) (자동응답기)
- 조회/생성/삭제: Repository
수정: Service
- MemoRepository memoRepository
MemoService memoService
- private final MemoRepository memoRepository
private final MemoService memoService
- @RequiredArgsConstructor: final 붙인거 알아서 생성해줌
- @RestController: 생성 별도 할 필요없이 스프링이 해줌
package com.review.review03.controller;
import com.review.review03.domain.MemoRepository;
import com.review.review03.service.MemoService;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.RestController;
@RequiredArgsConstructor
@RestController
public class MemoController {
private final MemoRepository memoRepository;
private final MemoService memoService;
}
- createMemo 메소드 생성
1) MemoRequestDto requestDto: 생성할 데이터 받아야함
2) @PostMapping("/api/memos"): POST 방식으로 요청
3) Memo 클래스 생성: requestDto로 생성
4) return memoRepository.save(memo): 생성한 memo를 Repository에 생성
- getMemos 메소드 생성
1) return memoRepository.findAllByOrderByModifiedAtDesc(): 최신순으로 정렬해서 리스트 조회
2) @GetMapping("/api/memos")
- deleteMemo 메소드 생성
1) memoRepository.deleteById(id);
2) @PathVariable Long id: 경로에 있는 변수 사용, id가 누군지 찾기 위해 매개변수에 넣음
3) @DeleteMapping("/api/memos/{id}")
4) return id
package com.bellpro.memo.controller;
import com.bellpro.memo.domain.Memo;
import com.bellpro.memo.domain.MemoRepository;
import com.bellpro.memo.domain.MemoRequestDto;
import com.bellpro.memo.service.MemoService;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;
import java.lang.management.LockInfo;
import java.util.List;
@RequiredArgsConstructor
@RestController
public class MemoController {
private final MemoRepository memoRepository;
private final MemoService memoService;
@PostMapping("/api/memos")
public Memo createMemo(@RequestBody MemoRequestDto requestDto){
Memo memo = new Memo(requestDto);
return memoRepository.save(memo);
}
@GetMapping("/api/memos")
public List<Memo> getmemos(){
return memoRepository.findAllByOrderByModifiedAtDesc();
}
@PutMapping("/api/memos/{id}")
public Long updateMemo(@PathVariable Long id, @RequestBody MemoRequestDto requestDto){
memoService.update(id, requestDto);
return id;
}
@DeleteMapping("api/memos/{id}")
public Long deleteMemo(@PathVariable Long id){
memoRepository.deleteById(id);
return id;
}
}