인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

fightnyy님의 프로필 이미지
fightnyy

작성한 질문수

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

Controller와 abstract class

작성

·

291

0

안녕하세요 영한님

강의를 듣던도중 궁금한점이 생겨 질문드립니다.

질문 1. 

@Slf4j
@Component
public class SimpleTest {

@RequestMapping("/test")
public String test(){

log.error("it reached");
return "ok";
}

}

위와 같은 코드를 작성했는데 이같은 코드를 작성한 이유는 만약 Controller와 RestController 가 없으면 과연 Spring은 view이름을 찾을까 아니면 그냥 body에 OK를 넣을까? 단순 궁금하여 넣어봤는데 결과는

아무것도 출력이 안되고 Whitelabel error가 나오고 심지어 아예 메소드 자체도 실행이 안되더라구요 (log를 넣어봤는데 출력이 안됩니다.) 또 @Component 말고 @Repository @ Service 도 넣어봤는데 url에 "localhost:8080/test"를 해보니 모두 실행이 안되고 오직 @Controller 또는 @RestController 여야 해당 메소드가 실행이 되더라구요

이를 통해서 스프링은 오직 @Controller 또는  @RestController 가 클래스 레벨에 있어야만 URL mapping을 할 수 있다고 생각하면 될까요?

질문2.

강의에서는 interface와 class 만 쓰고 abstract class 는 쓰지 않더라구요

실무에서도 abstract class는 거의 쓸 일이 없나요?

강의 너무너무 잘듣고 있습니다. 감사합니다.

답변 1

0

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. fightnyy님

질문1

스프링은 클래스 레벨에 @RequestMapping, @Controller, @RestController가 있는 경우에 컨트롤러로 사용합니다.

클래스 레벨에 @RequestMapping을 사용해보시면 정상 동작하는 것을 확인할 수 있습니다.

섹션 5. 스프링 MVC - 구조 이해에서 자세히 설명드립니다^^

질문2

추상 클래스도 적절한 사용처가 있다면 사용하시면 됩니다.

감사합니다.

fightnyy님의 프로필 이미지
fightnyy

작성한 질문수

질문하기