점프 투 스프링부트를 참고하여 학습,작성하였습니다.
1.서비스(Service)
스프링에서 데이터 처리를 위해 작성하는 클래스
컨트롤러에서 리포지터리를 직접 호출하지 않고 중간에 서비스를 두어 데이터를 처리한다.
2.서비스 사용이유
- 비즈니스 로직 분리
- 트랜잭션 관리
- 재사용성
- 단일 책임 원칙
- 테스트 용이성
- Spring IoC 컨테이너 관리
3.서비스 만들기
컨트롤러에서 리포지터리 대신 사용할 서비스를 제작한다.
@Service 애너테이션을 사용하여 서비스를 제작한다.
기존 컨트롤러에서 리포지터리를 사용한 부분을 옮긴다.
package com.example.service;
import java.util.List;
import org.springframework.stereotype.Service;
import com.example.repository.*;
import com.example.model.*;
import lombok.RequiredArgsConstructor;
@RequiredArgsConstructor
@Service
public class QuestionService {
private final QuestionRepository questionRepository;
public List<Question> getList() {
return this.questionRepository.findAll();
}
}
4.컨트롤러 수정
기존 리포지터리를 사용하던 부분을 서비스로 대체한다.
@RequiredArgsConstructor
@Controller
public class MyController {
private final QuestionService questionService;
@GetMapping("/question/list")
public String list(Model model) {
List<Question> questionList = this.questionService.getList();
model.addAttribute("questionList", questionList);
return "question_list";
}
'BackEnd > SpringBoot' 카테고리의 다른 글
[SpringBoot] 상세 페이지제작 (0) | 2024.07.01 |
---|---|
[Spring Boot] 루트 URL (0) | 2024.07.01 |
[Spring Boot] 질문 목록 제작 (0) | 2024.07.01 |