본문 바로가기
목차
Spring

Spring MVC (스프링 웹 MVC) 강의 27 - Annotation으로 URL 매핑하기

by 지각생 2022. 1. 7.
728x90

주석

@Controller 아직 못 찾는다.

13행 주석

14행 추가 및 @Controller를 찾으려면

base-package="com.newlecture.web.service"

가 아니라

base-package="com.newlecture.web.controller"

라고 해주어야 한다.

 

그리고

base-package="com.newlecture.web"

이라고 해주면 service와 controller 다 찾을 수 있지만 성능상의 문제가 있으니 특정 해주는 편이 낫다.

 

(영상 4분30초..이부분 이해하기 어려워서 그냥 다 받아 적어둠..)

어노테이션은 클래스를 찾는 것.

함수를 찾아서 실행하면 되는 것..

@컴포넌트나 @콘트롤러다

라면

객체를 생성하면 된다.

그러니깐 어노테이션이 붙어있으면 뭔가 해야할 행위가 있다.

 

그러나 xml방식은 IndexController를 객체화 했다.

해도 객체를 참조할수 있도록하는 변수명(implements Controller부분)이 정해져 있고

또 호출할 수 있는 함수가 정해져야한다.

그래서 인터페이스 같은 규약을 써야 했는데

 

이제 어노테이션 방식이니 implements와 handleRequest 지워도 된다.

지금 6행에 오류는 저 4행 부분을 지워줘야한다.

컨트롤+쉬프트+O 해도 안지워지니 직접 지워주자

진짜 실행하는지 확인을 위해 콘솔 찍어보자

그전에

@RequestMapping("/index")

매핑 기능을 사용하려면

<mvc:annotation-driven/>

이라는 태그를 .xml에 추가해줘야 한다.

 

(@Controller 

기능을 사용하려면

<context:component-scan base-package="com.newlecture.web.controller"/>

 .xml에 추가해줘야 하듯이)

 

실행해보면

콘솔 찍히는걸 알 수 있다.

 

뷰 정보

 

만약 이렇게  없는 것을 매핑해주면

이렇게 찾는데 원리는

 

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
     <property name="prefix" value="/WEB-INF/view/"></property>
     <property name="suffix" value=".jsp"></property>
     <property name="order" value="2" />
</bean>

 

여기서 썻던 Resolver구문대로

앞뒤로 텍스트 붙여서 검색해 본 뒤 없으면 404 오류가 뜨는 것이다.

 

다음 시간에는 IndexController 이름을 바꿀것이다.

그 이유는 다음 시간에~

 

 

출처:

https://www.youtube.com/watch?v=CRjY6BobqGM&list=PLq8wAnVUcTFUHYMzoV2RoFoY2HDTKru3T&index=54 

 

728x90

댓글