-
2.2.5 서비스 레이어 : 비즈니스 로직Spring/웹 개발 101 2022. 4. 10. 00:20반응형
서비스 레이어 : 컨트롤러와 퍼시스턴스 사이에서 비즈니스 로직을 수행하는 역할
@service 어노테이션 : 스프링 컴포넌트이며 기능적으로 비즈니스 로직을 수행하는 서비스 레이어임을 알려주는 어노테이션
* @Component와 기능적으로는 크게 차이가 없다.
package com.example.demo.service; import org.springframework.stereotype.Service; @Service public class TodoService { public String testService() { return "Test Service"; } }
package com.example.demo.controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.http.ResponseEntity; import com.example.demo.dto.ResponseDTO; import com.example.demo.service.TodoService; import java.util.ArrayList; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; @RestController @RequestMapping("todo") public class TodoController { //testTodo메서드 작성하기 @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); } }
=>@RestController내부도 @Component 어노테이션을 갖고 있습니다.
=> @Service, @RestController 모두 자바 빈이고 스프링이 관리합니다.
=> 스프링을 TodoController 오브젝트를 생성할 때 TodoController내부에 선언된 TodoService에 @Autowired 어노테이션이 붙어 있다는 것을 확인합니다.
=> @Autowired가 알아서 빈을 찾은 다음그 빈을 이 인스턴스 멤버 변수에 연결하나는 뜻입니다.
반응형'Spring > 웹 개발 101' 카테고리의 다른 글
2.2.6 퍼시스턴스 레이어 : 스프링 데이터 JPA (0) 2022.04.11 2.2.4 매개변수를 넘겨받는 방법 (0) 2022.04.08 2.2.3 REST API || 2.2.4 컨트롤러 레이어 (0) 2022.04.07 2.2.2 모델, 엔티티, DTO (0) 2022.04.04 2.2 백엔드 서비스 아키텍쳐 (0) 2022.04.03