728x90
이전 글
지금까지는 Controller에서 필요한 데이터를 임의로 생성해봤다.
이제는 비즈니스 로직을 실제로 처리할 Service Class를 만들어보자.
1. service Class 생성
아래와 같이 info 디렉토리 하단에 infoService Class를 새롭게 생성한다.
생성 후 아래와 같이 데이터를 주입받을 Serivce Class를 작성한다.
model에서 불러오는 getter/setter는 이제 Service Class에서 불러오도록 한다.
*참고 @Service annoation을 사용하지 않으면 의존성 주입을 받을 수 없으니 주의
package com.example.demo.info;
import java.util.Date;
import org.springframework.stereotype.Service;
import com.example.demo.model.Project;
@Service
public class infoService {
public Project getProjectInfo() {
Project project = new Project();
project.projectName = "preword";
project.author = "hello-bryan";
project.createdDate = new Date();
return project;
}
}
2. service 주입 및 호출
이제 /info URL을 호출하는 Controller를 아래와 같이 수정하자.
기존 Json 데이터를 반환하는 코드을 삭제하고 Serivce를 통해서 불러오도록 한다.
package com.example.demo.info;
import java.util.Date;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import com.example.demo.model.Project;
@Slf4j
@RestController
public class infoController {
private com.example.demo.info.infoService infoService;
@Autowired // spring 4.3 버전 이상부터는 생략 가능
public infoController(com.example.demo.info.infoService infoService) {
this.infoService = infoService;
}
@GetMapping("/info")
public Object projectInfo() {
log.debug("/info start");
Project project = infoService.getProjectInfo();
return project;
}
}
이상이 없다면 이제 아래와 같이 http://localhost:8080/info Url을 호출하여 json 파라미터를 확인하자.
{"projectName":"preword","author":null,"createdDate":"2021-10-12T01:33:32.349+00:00"}
끝
728x90
'백엔드 > Spring Boot' 카테고리의 다른 글
[Spring Boot] REST API 만들기 (4) - MySQL + JDBC Template (0) | 2021.10.12 |
---|---|
[Spring Boot] REST API 만들기 (2) - 로그 남기기 (slf4j+logback) (0) | 2021.10.07 |
[Spring Boot] REST API 만들기 (1) - Json 반환 방법 (0) | 2021.10.07 |
[이클립스] 스프링 부트 cannot resolved (0) | 2021.10.07 |
[이클립스] 스프링 부트 초기 세팅 (0) | 2021.10.07 |