해결된 질문
작성
·
191
0
제일 처음 hellospring으로 간단히 코드를 만들었을때
@GetMapping("hello")를 하면 localhost:8080/hello를 치면 그 코드가 실행되는 걸로 기억을 하는데
그럼 여기서도 혹시
@GetMapping("/members/new")이렇게 해도 되고
@GetMapping("members/new")이렇게 입력해도 결과값은 같게 나오나요?
그리고 지금 이 강의에서
MemberController와 MemberService둘다 스프링빈에
등록되어 있어서 MemberController생성자에 MemberService를 쓸 수 있는것이 맞나요?
답변 1
0
안녕하세요. 지호님, 공식 서포터즈 OMG입니다.
@GetMapping("hello")
public String hello() {
return "hello";
}
@GetMapping("/hello")
public String hello() {
return "hello";
}
위와 아래는 동일한 요청을 보냅니다.
단, 아래와 같은 경우를 주의하셔야합니다
RestController
@RequestMapping("/hi")
public class HelloController {
@GetMapping("hello")
public String hello() {
return "hello";
}
@GetMapping("/hello")
public String hello2() {
return "hello";
}
}
localhost:8080/hi/hello라는 요청을 처리하고자 하는 경우를 가정하면
클래스 레벨에서
/hi로 들어오는 요청을 받고, 아래의 메서드레벨에서 요청을 처리할 때 /가 없는 hello()와 같이 작성하면
오류가 발생하므로 hello2()와 같이 작성해야 합니다.
Q)
그리고 지금 이 강의에서
MemberController와 MemberService둘다 스프링빈에
등록되어 있어서 MemberController생성자에 MemberService를 쓸 수 있는것이 맞나요?
A)
네, 스프링 빈에 등록되어 있어서 주입이 된 것 입니다.
"컴포넌트 스캔과 자동 의존관계 설정" 강의 내용이 질문 내용을 설명하고 있습니다.
감사합니다.
항상 답변 친절하게 달아주셔서 감사합니다!!!