인프런 커뮤니티 질문&답변

지호님의 프로필 이미지

작성한 질문수

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

회원 웹 기능 - 등록

강의에서 43초 부분에 @GetMapping관련하여 질문이 있습니다.

해결된 질문

작성

·

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)

네, 스프링 빈에 등록되어 있어서 주입이 된 것 입니다.

"컴포넌트 스캔과 자동 의존관계 설정" 강의 내용이 질문 내용을 설명하고 있습니다.

감사합니다.

지호님의 프로필 이미지
지호
질문자

항상 답변 친절하게 달아주셔서 감사합니다!!!

지호님의 프로필 이미지

작성한 질문수

질문하기