728x90
안녕하세요
로로봉입니다 : )
오늘은 기존에 /Info 페이지였던 InfoController를 Service로 만들어서 사용해 보도록 하겠습니다.
우선 info 패키지에 우측 마우스를 클릭하여 New - Class를 선택해줍니다.
클래스 이름은 InfoService로 작성 후 Finish 버튼을 눌러줍니다.
InfoService 클래스를 아래와 같이 작성해줍니다.
@Service
public class InfoService {
public Project getProjectInfo() {
Project project = new Project();
project.projectName = "restapi";
project.author = "rorobong";
project.createDate = new Date();
return project;
}
}
@Service 를 class 어노테이션으로 달아주면 spring에서는 beanFactory 에 해당 클래스를 담아주었다가 @Autowired 를 사용하는 곳에 해당 bean 을 찾아 주입하게 됩니다.
이제 작성한 서비스를 실행해보도록 하겠습니다.
info 패키지에 우측 마우스를 눌러 New - Class를 선택해줍니다.
클래스명에 Infocontroller3를 입력 후 Finish 버튼으로 클래스를 만들어 줍니다.
InfoController3를 아래와 같이 작성해 줍니다.
@Slf4j
@RestController
public class InfoController3 {
private InfoService infoService;
@Autowired // spring 4.3 버전 이상부터는 생략 가능
public InfoController3(InfoService infoService) {
this.infoService = infoService;
}
@GetMapping("/info3")
public Object peopleList() {
log.debug("/peopleList start");
Project project = infoService.getProjectInfo();
return project;
}
}
@Autowired를 생성자에 선언함으로써 Spring에서 생성자에 InfoService 서비스를 주입하게 됩니다.
해당 방법은 생성자 주입 방법으로 아래 4가지 장점이 있습니다.
1) 순환참조 방지 : A가 B를 참조하고 B가 A를 참조할 때의 문제
2) 테스트하기에 좋음
3) final 선언 가능
4) 오류 방지 : 불변 객체(final) 또는 null 방지 가능
이제 빌드 후 실행해보면 서비스에 등록된 정보가 표시되는 것을 볼 수 있습니다.
실제 REST API를 구현할 때 여러가지 서비스를 만들어야하는데 위의 구조대로 만들어주면 됩니다.
공감 ♥ + 구독 부탁드립니다 : )
728x90
반응형
'개발 정보 > 웹개발' 카테고리의 다른 글
[웹 개발] Eclipse REST API 구현 - SELECT문 조건 조회 (0) | 2022.05.30 |
---|---|
[웹 개발] Eclipse REST API 구현 - JDBC 사용하여 MySQL 연동하기 (6) | 2022.05.27 |
[웹 개발] Eclipse REST API 구현 - Log 기록 남기기 (7) | 2022.05.24 |
[웹 개발] Eclipse REST API 구현 - JSON 형식 리턴하기 (4) | 2022.05.23 |
[웹 개발] Eclipse REST API 구현 - SpringBoot 기본 호출 구조 (2) | 2022.05.19 |
댓글