해당 튜토리얼에서는 앞서 만들었던 서비스의 db를 CrudRepository를 이용하는 것으로 수정하는 과정이다. CrudRepository는 일반적으로 레파지토리에서 상속하는 인ㄴ터페이스 중 하나이다. 메서드를 정의하지 않아도 간단한 CRUD 사용이 가능하다는 장점이 있다. 자세한 설명은 아래 링크 참조.
https://velog.io/@baekgom/JpaRepository-%EC%99%80-Repository
우선 Message 클래스에 몇가지 어노테이션을 추가해준다. 또한 id 파라미터는 디폴트 값으로 null 값을 넣어줘서 선언 시에 id 파라미터 부분이 비어있어도 null 값으로 대체될 수 있도록 해준다.
// Message.kt
package com.example.demo
import org.springframework.data.annotation.Id
import org.springframework.data.relational.core.mapping.Table
@Table("MESSAGES")
data class Message(val text: String, @Id val id: String? = null)
다음으로 CrudRepository 인터페이스를 상속하는 MessageRepository 인터페이스를 만들어준다.
// MessageRepository.kt
package com.exmaple.demo
import org.springframework.data.repository.CrudRepository
interface MessageRepository : CrudRepository<Message, String>
마지막으로 CrudRepository의 내장 메서드들로 이미 구현했던 기능들을 더 간단하게 수정할 수 있게 된다.
// MessageService.kt
package com.example.demo
import org.springframework.data.repository.findByIdOrNull
import org.springframework.stereotype.Service
@Service
class MessageService(private val db: MessageRepository) {
fun findMessages(): List<Message> = db.findAll().toList()
fun findMessageById(id: String): Message? = db.findByIdOrNull(id)
fun save(message: Message): Message = db.save(message)
}
728x90
'2024-겨울 프로젝트 관련 공부' 카테고리의 다른 글
[Spring Booot][기본 개념] DTO, Entity, DAO 개념 익히기 (0) | 2025.01.11 |
---|---|
[Spring Boot] [기본 개념] MVC, DI 공부 (0) | 2025.01.07 |
[Spring Boot / Kotlin] 튜토리얼3, data base 추가하기 (0) | 2025.01.06 |
[Spring Boot / Kotlin] 튜토리얼2, data class 추가하기 (0) | 2025.01.04 |
[Spring Boot / Kotlin] 튜토리얼1, Spring Boot 시작하기 (0) | 2025.01.04 |