Client로부터 들어오는 요청을 처리하는 역할
요청이 들어오면 서비스 계층에 전달하고, 처리된 결과는 적절한 형태로 변환해 Client한테 돌려 준다.
실질적인 비즈니스 로직 일을 하는 계층
비즈니스 로직의 집합, DB에 접근해야 할 일이 생기면 Repository 계층을 통해 접근
DB와 직접적인 소통 하는 역할
데이터의 CRUD(Create, Read, Update, Delete) 작업을 처리
1) 복잡한 코드를 모듈화
2) Entity ⇄ DTO 변환 가능
QuestionService.java
package com.mysite.sbb.question;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import java.util.List;
@RequiredArgsConstructor
@Service
public class QuestionService {
private final QuestionRepository questionRepository;
public List<Question> getList() {
return this.questionRepository.findAll();
}
}
QuestionController.java
package com.mysite.sbb.question;
import java.util.List;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import lombok.RequiredArgsConstructor;
@RequiredArgsConstructor
@Controller
public class QuestionController {
private final QuestionService questionService;
@GetMapping("/")
public String list(Model model) {
List<Question> questionList = this.questionService.getList();
model.addAttribute("questionList", questionList);
return "question_list";
}
}
출처 : 점프 투 스프링부트