- Controller → Service → Repository
📚 Controller
☑️ Postman API 요청으로 책의 데이터 (addBookDto) 가 입력된다
☑️ 책을 등록하는 메서드 (addBook) 가 저장된 service 가 호출된다
@RestController
@RequestMapping("/book")
@RequiredArgsConstructor
public class BookController {
private final BookService bookService;
// 책 등록
@PostMapping()
public void addBook(@RequestBody AddBookDto addBookDto) {
bookService.addBook(addBookDto);
}
}
📚 Service
☑️ Book Entity 에서 createBook 메서드로 addBookDto 책 데이터를 입력한다
☑️ Repository 의 save 메서드 기능을 이용해 DB 에 저장한다
@Service
@Transactional
@RequiredArgsConstructor
public class BookService {
private final BookRepository bookRepository;
// 책 등록
public void addBook(AddBookDto addBookDto) {
// DB 에 책 저장
Book book = Book.createBook(addBookDto);
bookRepository.save(book);
}
}
📚 Repository
☑️ JpaRepository 인터페이스를 상속받아, 다양한 메서드를 사용할 수 있다
@Repository
public interface BookRepository extends JpaRepository<Book, Long> {}
📚 Entity
☑️ 입력받은 데이터 (addBookDto) 를 토대로 build 한다
☑️ bookStatus : 책을 대출할 수 있는 상태 → 처음 등록 시 대출 가능 (AVAILABLE) 로 설정
☑️ likeCount : 좋아요 개수 → 처음 등록 시 0 에서 부터 시작
...
public class Book extends BaseEntity {
...
public static Book createBook(AddBookDto addBookDto) {
Book book = Book.builder()
.title(addBookDto.getTitle())
.description(addBookDto.getDescription())
.bookStatus(BookStatus.AVAILABLE)
.likeCount(0)
.build();
return book;
}
}
📚 Dto
☑️ 클라이언트에서 입력받을 데이터를 담는다
@Getter
@NoArgsConstructor
public class AddBookDto {
private String title;
private String description;
}
💡TEST💡
· Postman (데이터 요청)
· DataGrip (DB 데이터 확인)
'Spring > [P] 도서 대여 프로그램' 카테고리의 다른 글
💛 책 대출 등록하기 💛 (0) | 2023.12.16 |
---|---|
💚 등록된 책 조회하기 (전체 조회, 선택 조회) 💚 (0) | 2023.12.16 |
🩵 Spring Security (2) 로그인 🩵 (0) | 2023.11.28 |
🩵 Spring Security (1) 회원가입 🩵 (0) | 2023.11.27 |
💜 MySQL DB 연결하기 (+ Docker, DataGrip) 💜 (0) | 2023.11.27 |