작성
·
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
추상 클래스도 적절한 사용처가 있다면 사용하시면 됩니다.
감사합니다.