Project 요소 생성
이번에는 프로젝트에 필요한 요소(?)들을 생성하겠습니다. 이미 Entity는 생성을 하였으니 그 외의 것들을 생성하겠습니다.
JPA에서는 Repository 인터페이스를 생성한 뒤 JpaRepository<Entity, 기본키의 타입>을 상속받으면 기본적인 CRUD 기능이 생성됩니다. 이 Repository에서는 데이터베이스와 데이터를 주고 받을 수 있는 기능들을 정의 하게 됩니다.
// 예시
// repository/BoardRepository.java
import fftl.fftl03RemakeBoard.entity.Board;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
@Repository
public interface BoardRepository extends JpaRepository<Board, Long> {
}
Service 부분입니다. Service 부분은 실질적인 비즈니스 로직을 구현하는 부분으로서 Repository의 이용하여 각각의 기능들을 구현하게 됩니다.
Service는 @Service
어노테이션을 입력하여 구분합니다. 또 Service에서 사용해야하는 Repository를 의존성 주입 해야하는데 이때 클래스 상단에 @RequiredArgsConstructor
를 추가하고 final UserRepository userRepository;
의 형식으로 간단하게 추가할 수 있다.
// 예시
// service/BoardService.java
import fftl.fftl03RemakeBoard.repository.BoardRepository;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
@RequiredArgsConstructor
@Service
public class BoardService {
private final BoardRepository boardRepository;
}
Controller는 실질적으로 요청을 받아들이고 응답을 해주는 역할을 합니다. 각각 @Get, @Post, @Delete, @Petch, @Update
가 주로 사용되며 각 이름에 걸맞는 요청의 기능을 담당하게 됩니다.
Controller도 @Controller
어노테이션을 통해서 명시해 줄수 있으며 Rest API를 만들 때 사용할 수 있는 @RestController
도 존재합니다. 저는 Rest API를 만들고 있기 때문에 @RestController
를 사용하였습니다.
// 예시
// controller/BoardController.java
import org.springframework.web.bind.annotation.RestController;
@RestController
public class BoardController {
}
이제 해당 파일들에 코드들을 채워 넣어야 합니다.
해당 내용의 프로젝트는 Github에서 확인할 수 있습니다.