작성
·
145
0
질문1
아래 코드에서 생성자의 역할은 무엇일까요? 스프링에서 service 객체를 자동으로 매핑 해주는게 맞나요?
질문2
@RestController 의 역할에 대해서 설명을 좀 해주시면 감사요 !!
@RestController
public class UserController {
private UserDaoService service;
public UserController(UserDaoService service) {
this.service = service;
}
답변 2
1
안녕하세요, 이도원
문의하신 질문에 대한 답변 드립니다.
답변1) 위 코드에서 생성자의 역할은, UserDaoService에 대한 인스턴스를 주입하기 위합니다. 주입할 수 있는 3가지 방법(Field, Setter, 생성자) 중 하나입니다. 생성자가 하나인 경우에는 @Autowired를 붙이지 않아도 되지만, 2개 이상인 경우에는 어노테이션을 붙여주어야 합니다. 생성자를 통해 주입하게 되면 객체를 생성하지 시점에 필요한 인스턴스를 주입하며, 순환 참조를 방지 할 수 있습니다.
답변2) RestController는 Spring MVC에서 사용되는 Controller에 @ResponseBody가 포함된 컨트롤러입니다. REST 방식으로 반환 데이터를 전달할 때 사용되며, 반환 값으로 JSON(또는 XML) 형식을 사용합니다. ModelAndView와 같이 화면 UI를 가지지 않는 컨트롤러에서 JSON 포맷의 반환값을 사용할 때 주로 사용하게 됩니다.
감사합니다.
0
정확하고 상세한 답변 감사합니다.
질문) 생성자 주입시 @autowired 를 사용하지 않은 이유, 생성자를 통한 객체 자동 주입을 사용한 이유?
답변) 위 코드에서 생성자의 역할은, UserDaoService에 대한 인스턴스를 주입하기 위합니다. 주입할 수 있는 3가지 방법(Field, Setter, 생성자) 중 하나입니다. 생성자가 하나인 경우에는 @Autowired를 붙이지 않아도 되지만, 2개 이상인 경우에는 어노테이션을 붙여주어야 합니다. 생성자를 통해 주입하게 되면 객체를 생성하지 시점에 필요한 인스턴스를 주입하며, 순환 참조를 방지 할 수 있습니다.
질문) @RestController 를 적용한 이유?
답변) RestController는 Spring MVC에서 사용되는 Controller에 @ResponseBody가 포함된 컨트롤러입니다. REST 방식으로 반환 데이터를 전달할 때 사용되며, 반환 값으로 JSON(또는 XML) 형식을 사용합니다. ModelAndView와 같이 화면 UI를 가지지 않는 컨트롤러에서 JSON 포맷의 반환값을 사용할 때 주로 사용하게 됩니다.