[Spring] Annotation 을 이용한 컨트롤러 맵핑
web.xml 에서 url Mapping 을 위해 web.xml 에서 해당되는 확장자가 들어올시 Spring 의 Dispatcher 를 실행시키게끔 편집한다.
<servlet> <servlet-name>dispatcher</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>dispatcher</servlet-name> <url-pattern>*.htm</url-pattern> </servlet-mapping>
그다음 dispatcher-servlet.xml 을 편집해준다. 컨트롤러의 위치를 찾아주는 component-scan 의 위치를 지정해준다. 패키지명만 적어준다.
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"> <context:component-scan base-package="controllers"></context:component-scan> </beans>
그후 베이스 패키지명과 같은 이름으로 패키지를 만들어주고 그안에 컨트롤러 클래스를 만들어준다. 컨트롤러 클래스의 이름은 아무것이나 지어도 된다. 편의상 PracticeController 이라 하겠다.
package controllers; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @Controller public class PracticeController { @RequestMapping("/index.htm") public String noticeDetail() { return "index.jsp"; } }
위의 코드는 기존 Dispatcher 에서 하던 URL 맵핑을 대신해주고 있다. /index.htm 이라는 요청이 들어오면 @RequestMapping Annotation 에 명시된 요청 주소를 찾게 되고 매칭되면 메소드가 실행된다 index.jsp 를 return 해주고 있다. 기존 MVC2 패턴에서는 컨트롤러 하나 생성에 여기저기 옮겨 다니면서 작업 해야 했다. 아직 포스팅 하지 않았지만 DAO 객체도 setter 만 해주고 @Autowired annotation을 써주면 a
댓글
이 글 공유하기
다른 글
-
[Spring] JDBC template
[Spring] JDBC template
2014.07.29 -
[Spring] 인코딩(UTF-8) 필터 클래스 장착하기
[Spring] 인코딩(UTF-8) 필터 클래스 장착하기
2014.07.29 -
[Spring] dispatcher-servlet-xml 기본형식
[Spring] dispatcher-servlet-xml 기본형식
2014.07.28 -
인코딩(UTF-8) 필터 클래스 장착하기
인코딩(UTF-8) 필터 클래스 장착하기
2014.07.11