SPRING/스프링

[스프링]6. @RequestMapping 어노테이션 사용

추억을 백앤드하자 2021. 3. 30. 15:43
728x90
반응형
SMALL
package com.newlecture.web.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;


@Controller //ctrl+shift+o 자동 임폴트
public class IndexController /*implements Controller*/{

	@RequestMapping("/index") //매핑구문 안에 구문을 저절로 찾아서 url리솔빙을 해준다.
	public void aaaa() {
		System.out.println("asd");
	}
	
	
	
//	@Override
//	public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
//		// TODO Auto-generated method stub
//		
//		ModelAndView mv=new ModelAndView("root.index");
//		mv.addObject("data", "Hello Spring MVC");
//		//mv.setViewName("/WEB-INF/view/index.jsp");
//		
//		return mv;
//	}
	
}

 

해당 클래스 파일을 보면 주석처리된 부분어노테이션 적용 이전의 내용이다.

 

해당 컨트롤러 클래스는 index.jsp 로 보내는 역할이다.

 

현재 xml 파일 내에서는 이전에는 주석처리된 이 구문이 활성화됬었으나

 <!-- <bean id="/index" class="com.newlecture.web.controller.IndexController"/> -->  

 

context 스캔구문으로 어노테이션 설정을 했기때문에  더이상 위의 선언문을 사용하지 않아도 되며

해당 context 구문을 xml에 선언하면 @Controller 어노테이션으로 ioc 컨테이너에 담을수 있게됬으며

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

기존 인터페이스를 받고 있는 implements Controller 또한(클래스명 옆에 주석처리된 부분)

context 스캔 구문에서 Controller 가 포함된 패키지 내의 범위(com.newlecture.web.controller)를 스캔하고있기 때문에 @Controller(=@Component) 선언으로 저 구문을 대체할수 있게된다.

 

xml 파일 주석구문에서

IndexController 클래스가 url 매핑을 /index 로 받고있는 xml 설정을 볼수 있으나 이또한

@RequestMapping 어노테이션 선언으로 대체가 가능하여 저 xml구문또한 필요가 없다. 

 

스프링 3.x 때 과거버전

스프링 4.x 이후의 현재버전 지금은 이거 주로 사용

728x90
반응형
LIST