Skip to the content.

스프링 MVC를 이용하는 경우 작성되는 컨트롤러에는 특징이 있다.

이렇듯 어노테이션을 중심으로 구성되기 때문에 각 어노테이션의 의미를 주의하며 작성해야 한다.

예제

클래스 선언부에 @Controller 어노테이션을 선언하는데 이렇게 되면 자동으로 빈이 생성된다.

이에 대한 증거로는 servlet-context.xml 또는 ServletConfig.class이다.

@EnableWebMvc
@ComponentScan(basePackages = {"com.osk2090.controller"})//해당 패키지를 스캔하도록 되어 있다.
public class ServletConfig implements WebMvcConfigurer {
...생략
}

그래서 해당 클래스를 스프링에서 관리하면 사진처럼 뜬다.

클래스 선언부에는 @Controller와 함께 @RequestMapping을 많이 사용한다.

@RequestMapping은 현재 클래스의 모든 메서드들의 기본적인 URL 경로가 된다.

예를 들어 SampleController 클래스를 다음과 같이 “/sample/*“이라는 경로로 지정했다면

다음과 같이 URL은 모두 SampleController에서 처리된다.

@RequestMapping 어노케이션은 클래스의 선언과 메서드 선언데 사용할 수 있다.

그래서 구동을 해보고 콘솔창을 확인해보면 정보를 확인할 수 있다.

INFO : org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - 
Mapped "{[/],methods=[GET]}" onto public java.lang.String com.osk2090.controller.
HomeController.home(java.util.Locale,org.springframework.ui.Model)

INFO : org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - 
Mapped "{[/sample/*]}" onto public void com.osk2090.controller.SampleController.basic()

현재 프로젝트의 경우’/’와 ‘sample/*‘는 호출이 가능한 경로라는 것을 확인 할 수 있다.