Service 활용하기

Dami·2024년 1월 19일
0

SPRING

목록 보기
14/14
post-thumbnail

복습

Client와 DB 사이 3계층

1) Controller

Client로부터 들어오는 요청을 처리하는 역할
요청이 들어오면 서비스 계층에 전달하고, 처리된 결과는 적절한 형태로 변환해 Client한테 돌려 준다.

2) Service

실질적인 비즈니스 로직 일을 하는 계층
비즈니스 로직의 집합, DB에 접근해야 할 일이 생기면 Repository 계층을 통해 접근

3) Repository

DB와 직접적인 소통 하는 역할
데이터의 CRUD(Create, Read, Update, Delete) 작업을 처리


Service 계층

Service 계층은 왜 필요한가?

1) 복잡한 코드를 모듈화
2) Entity ⇄ DTO 변환 가능

DTO to Entity & Entity to DTO

Code

1. Service 만들기

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();
    }
}

2. Controller 수정하기

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";
    }
}

출처 : 점프 투 스프링부트

0개의 댓글