-
카테고리
-
세부 분야
백엔드
-
해결 여부
미해결
질문이 있습니다.
21.03.18 22:25 작성 조회수 121
0
질문1
아래 코드에서 생성자의 역할은 무엇일까요? 스프링에서 service 객체를 자동으로 매핑 해주는게 맞나요?
질문2
@RestController 의 역할에 대해서 설명을 좀 해주시면 감사요 !!
@RestController
public class UserController {
private UserDaoService service;
public UserController(UserDaoService service) {
this.service = service;
}
[개정판 2023-11-27] Spring Boot 3.x 를 이용한 RESTful Web Services 개발
사용자 목록 조회를 위한 API 구현 - HTTP GET method
강의실 바로가기
답변을 작성해보세요.
1
Dowon Lee
지식공유자2021.03.21
안녕하세요, 이도원
문의하신 질문에 대한 답변 드립니다.
답변1) 위 코드에서 생성자의 역할은, UserDaoService에 대한 인스턴스를 주입하기 위합니다. 주입할 수 있는 3가지 방법(Field, Setter, 생성자) 중 하나입니다. 생성자가 하나인 경우에는 @Autowired를 붙이지 않아도 되지만, 2개 이상인 경우에는 어노테이션을 붙여주어야 합니다. 생성자를 통해 주입하게 되면 객체를 생성하지 시점에 필요한 인스턴스를 주입하며, 순환 참조를 방지 할 수 있습니다.
답변2) RestController는 Spring MVC에서 사용되는 Controller에 @ResponseBody가 포함된 컨트롤러입니다. REST 방식으로 반환 데이터를 전달할 때 사용되며, 반환 값으로 JSON(또는 XML) 형식을 사용합니다. ModelAndView와 같이 화면 UI를 가지지 않는 컨트롤러에서 JSON 포맷의 반환값을 사용할 때 주로 사용하게 됩니다.
감사합니다.
0
terecal
질문자2021.03.21
정확하고 상세한 답변 감사합니다.
질문) 생성자 주입시 @autowired 를 사용하지 않은 이유, 생성자를 통한 객체 자동 주입을 사용한 이유?
답변) 위 코드에서 생성자의 역할은, UserDaoService에 대한 인스턴스를 주입하기 위합니다. 주입할 수 있는 3가지 방법(Field, Setter, 생성자) 중 하나입니다. 생성자가 하나인 경우에는 @Autowired를 붙이지 않아도 되지만, 2개 이상인 경우에는 어노테이션을 붙여주어야 합니다. 생성자를 통해 주입하게 되면 객체를 생성하지 시점에 필요한 인스턴스를 주입하며, 순환 참조를 방지 할 수 있습니다.
질문) @RestController 를 적용한 이유?
답변) RestController는 Spring MVC에서 사용되는 Controller에 @ResponseBody가 포함된 컨트롤러입니다. REST 방식으로 반환 데이터를 전달할 때 사용되며, 반환 값으로 JSON(또는 XML) 형식을 사용합니다. ModelAndView와 같이 화면 UI를 가지지 않는 컨트롤러에서 JSON 포맷의 반환값을 사용할 때 주로 사용하게 됩니다.
답변 2