ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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가 알아서 빈을 찾은 다음그 빈을 이 인스턴스 멤버 변수에 연결하나는 뜻입니다. 

    반응형

    댓글

Designed by Who.