[SpringBoot] 서비스 만들기

2024. 8. 31. 10:00자바 웹 개발/스프링부트

엔티티는 데이스와 직접 맞닿아 있으므로 곧바로 컨트롤러 또는 템플린 엔진에 전달해 사용하는 것이 좋지 않다. 민감한 데이터가 포함되어 있기 때문이다. 그래서 엔티티 클래스는 컨트롤러에서 사용하지 않고 대신 사용할 DTO 클래스를 만들고 엔티티 객체를 DTO 객체로 변환할 필요가 있다. 이 일은 서비스에서 진행한다. 

 

@RequiredArgsConstructor
@Service
public class QuestionService {
  private final QuestionRepository questionRepository;
  public List<Question> getList() {
    return this.questionRepository.findAll();
  }

 

서비스를 사용하기 위해서는 @Service 애너테이션이 필요하다. 

 

컨트롤러가 이제 리포지터리 대신 서비스를 사용하도록 변경한다. 

@RequestMapping("/question")
@RequiredArgsConstructor
@Controller
public class QuestionController {

  private final QuestionService questionService;

  @GetMapping("/list")
  public String list(Model model){
    List<Question> questionList = this.questionService.getList();
    model.addAttribute("questionList", questionList);
    return "question_list";
  }