삶 가운데 남긴 기록 AACII.TISTORY.COM
Spring boot todo - REST API Service 본문
서비스(비즈니스 로직)
서비스 레이어는 controller와 persistence 사이에서 비즈니스 로직을 수행하는 역할입니다.
service 패키지를 만들어 아래 예제를 작성합니다.
package ds.co.kr.todo.service;
import org.springframework.stereotype.Service;
@Service
public class TodoService {
public String testService() {
return "Test Service";
}
}
@Service 어노테이션은 비즈니스 로직을 수행하는 컴포넌트이며 서비스 레이어임을 알려주는 어노테이션입니다.
스테레오 타입 어노테이션으로 내부에 @Component를 포함하고 있습니다.
@RestController 에도 내부에 @Component를 가지고 있으며 모두 자바 빈이고 스프링이 관리합니다.
@Autowired가 알아서 빈을 찾은 다음 그 빈을 인스턴스 멤버에 연결시킵니다.
즉, TodoController가 초기화 할 때 TodoService를 초기화 하여 TodoController에 주입해 주는 것입니다.
controller 패키지에 아래 예제를 작성합니다.
package ds.co.kr.todo.controller;
import java.util.ArrayList;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import ds.co.kr.todo.dto.ResponseDTO;
import ds.co.kr.todo.service.TodoService;
@RestController
@RequestMapping("todo")
public class TodoController {
@Autowired
private TodoService service;
@GetMapping("/test")
public ResponseEntity<?> testTodo(){
String str = service.testService();
List<String> list = new ArrayList<>();
list.add(str);
ResponseDTO<String> response = ResponseDTO.<String>builder().data(list).build();
return ResponseEntity.ok().body(response);
}
}
테스트 http://localhost:8080/todo/test
728x90
'DEV&OPS > Java' 카테고리의 다른 글
JAVA 코딩 컨벤션 (0) | 2022.10.20 |
---|---|
JAVA 스레드 없이 지연 sleep() 시키기 (0) | 2022.09.07 |
Spring boot todo - REST API Controller (0) | 2022.08.31 |
Spring boot todo - Model, Entity, DTO (0) | 2022.08.30 |
Spring boot todo - Gradle 라이브러리 관리 (0) | 2022.08.29 |