스프링을 배우다 보면 하나의 Source에 대해 반드시 만들게 되는 Controller, Service, Repository에 대해 알아보고 Client, DB사이 세 단계를 이해해보자.
Controller : Request를 어디에, 어떻게 처리할까?
Service : Request에 어떤 처리를 하자
Repository : 어떤 처리를 하기 위해 필요한 데이터에 접근하자
controller는 알맞는 Resquest를 받아 적절한 Service를 호출,
Sercvice는 적절하게 정보를 가공[비지니스 로직]하여 contorller로 전달
즉, controller는 요청과 처리사이를 중계
스프링 어노테이션 :
@Controller
@RestController = @ResponseBody + @Controller
@RestController
public class Controller {/
@Autowired
private Repository repository;
// "/request 위치에서 request를 받아 List서비스 호출
@GetMapping("/request")
public List<Entity> list(){
List<Entity> entity= Entity.findAll();
return entity;
}
}
service 는 처리를 담당
Repository
Entity에 의해 생성된 DB에 접근하기 위한 메서드를 담아두는 인터페이스
ex)
public interface Repository {
List<Entity> findAll();
Entity findById(Long id);
}
extends JpaRepository 시, jpaRepository에서 제공하는 DB에 접근하기위한 save, count, equals..를 사용할 수 있음.
더 알아보기 : MVC패턴