본문 바로가기

Spring

[Spring]Spring 시작해보기(7) - Service class 생성

Service 만들기를 시작해보자.

 

1. QuestionService class 생성

service는 controller와 마찬가지로 @Service 어노테이션을 사용할 수 있다.

그 후 Repository 객체를 사용하여 Repository class 내의 메서드를 사용한다.

@RequiredArgsConstructor
@Service
public class QuestionService {
    private final QuestionRepository questionRepository;

    public List<Question> getList() {
        return this.questionRepository.findAll();
    }
}

이는 전에 사용했던 모든 Question의 List를 가져오는 findAll 메서드를 사용해 반환하는 getList 메서드이다.

 

2. QuestionController 수정

QuestionRepository를 직접 연결하는 것이 아닌 QuestionService를 통과 후 진행한다.

@Controller
@RequiredArgsConstructor // 생성자 주입 -> final을 달면 autowired
public class QuestionController {
    private final QuestionService questionService; // QuestionRepository 직접연결이 아닌 QuestionService에 연결

    @RequestMapping("/question/list")
    // @ResponseBody 어노테이션이 없으면 resources/question_list/question_list.html 파일을 보여준다.
    public String list(Model model) {
        List<Question> questionList = this.questionService.getList();

        // 실행될 question_list.html에서
        model.addAttribute("questionList", questionList);

        return "question_list";
    }
}