1HOON
논리적 코딩
1HOON
전체 방문자
오늘
어제
  • HOME (186)
    • ☕️ JAVA (28)
      • WhiteShip Java LIVE Study (6)
      • Effective JAVA (10)
    • 🔮 KOTLIN (4)
    • 🌱 SPRING (51)
      • 스프링 인 액션 (22)
      • JPA (18)
    • ☕️ JAVASCRIPT (6)
    • 📃 DATABASE (40)
      • ORACLE (37)
      • MSSQL (2)
    • 🐧 LINUX (4)
    • 🐳 DOCKER (5)
    • 🐙 KUBERNETES (4)
    • 🏗️ ARCHITECTURE (8)
    • 📦 ETC (26)
      • TOY PROJECT (5)
      • RECRUIT (1)
      • 그냥 쓰고 싶어서요 (14)
    • 🤿 DEEP DIVE (1)
    • 🚽 Deprecated (9)
      • PYTHON (3)
      • AWS (2)
      • HTTP 완벽가이드 (3)
      • WEB (1)

블로그 메뉴

  • 홈
  • 방명록
  • 관리

인기 글

최근 글

티스토리

hELLO · Designed By 정상우.
1HOON

논리적 코딩

🌱 SPRING/스프링 인 액션

스프링 MVC 세팅

2018. 5. 30. 23:19

스프링 MVC 세팅

1.DispatcherServlet 설정

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public class SpittrWebAppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer
{
    @Override
    protected String[] getServletMappings ()        // DispatcherServlet을 /에 매핑한다.
    {
        return new String[] { "/" };
    }
    
    @Override
    protected Class<?>[] getRootConfigClasses ()
    {
        return new Class<?>[] { RootConfig.class };
    }
    
    @Override
    protected Class<?>[] getServletConfigClasses () // 설정 클래스를 명시한다.
    {
        return new Class<?>[] { WebConfig.class }
    }
}
Colored by Color Scripter
cs

- AbstractAnnotationConfigDispatcherServletInitializer를 이용해 DispatcherSerlvet을 설정하는 것은 web.xml 파일을 이용해 설정했던 것과 동일한 기능을 한다.

- 이러한 방식의 설정은 apache-tomcat 7과 같이 서블릿 3.0 이상을 지원하는 서버에 배포될 때만 동작한다.

- getServletConfigClasses() 에서 리턴된 @Configuration 클래스들은 DispatcherServlet의 애플리케이션 컨텍스트에 대한 핀들을 정의한다.

- getRootConfigClasses() 에서 리턴된 @Configuration 클래스들은 ContextLoaderListender가 생성한 애플리케이션 컨텍스트를 설정하는데 사용된다.


2. 스프링 MVC 활성화

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
@Configuration
@EnableWebMvc                // 스프링 MVC 활성화
@ComponentScan("spittr.web") // component-scaning 활성화
public class WebConfig extends WebMvcConfigurerAdapter
{
    @Bean
    public ViewResolver viewResolver ()
    {
        InternalResourceViewResolver resolver = new InternalResourceViewResolver();     // JSP 뷰 리졸버 설정
        resolver.setPrefix("/WEB-INF/views/");
        resolver.serSuffix(".jsp");
        resolver.setExposeContextBeansAsAttribute(true);
        
        return resolver;
    }
    
    @Override
    public void configureDefaultServletHandling (DefaultServletHandlerConfig configurer) // 정적 컨텐츠 처리 설정
    {
        configurer.enable();
    }
}
Colored by Color Scripter
cs

- @ComponentScan 어노테이션으로 이 애플리케이션에서는 spittr.web 패키지에서 컴포넌트를 스캔한다.

- 이 설정은 XML 설정방법에서 <mvc:annotation-driven> 으로 스프링 MVC를 활성화 시키는 것과 동일한 역할이다.

- viewResolver()에서 설정한 내용으로 뷰 이름이 'home' 일 때 실제 파일은 /WEB-INF/views/home.jsp 가 될 것이다. 

- configureDefaultServletHandling() 에서 설정한 내용으로 고정적인 리소스들에 대한 요청은 DispatcherServlet이 직접 처리하지 않고 서블릿 컨테이너의 디폴트 서블릿 전달을 요청한다.

1
2
3
@Configuration
@ComponentScan(beanPackages={"spittr"}, excludeFilters={ @Filter(type=FilterType.ANNOTATION, value=EnableWebMvc.class }
public class RootConfig { }
Colored by Color Scripter
cs

- 웹 설정에서는 아직 신경쓰지 않아도 되는 설정이다.

3. 컨트롤러 작성

1
2
3
4
5
6
7
8
9
@Controller // 컨트롤러 선언
public class HomeController
{
    @RequestMapping(value="/", method=GET) // /에 대한 GET 요청을 처리
    public String home ()
    {
        return "home"; // 뷰 이름은 home 실제 파일은 /WEB-INF/views/home.jsp
    }
}
Colored by Color Scripter
cs

- @Controller는 @Component 에 기반을 둔 어노테이션으로 앞서 @ComponentScan 으로 설정한 패키지 하위에만 있으면 컴포넌트 스캐너가 자동적으로 이 클래스를 빈으로 선언하게된다.

- @RequestMapping은 URL을 기준으로 요청에 대한 처리를 맡길 클래스, 메서드를 설정할 수 있다.


 


 이 포스트는 스프링 인 액션을 읽고 개인적으로 필요하다고 생각되는 내용을 정리한 포스트입니다.

일부 내용, 소스코드는 스프링 인 액션의 내용일 수 있습니다.

반응형
저작자표시 비영리 변경금지

'🌱 SPRING > 스프링 인 액션' 카테고리의 다른 글

JSP 라이브러리 이용하기  (0) 2018.06.13
스프링 뷰 리졸버 정의하기  (0) 2018.06.13
스프링에서의 요청 처리 순서  (0) 2018.05.30
어드바이스에서 파라메터 처리  (0) 2018.05.26
@Around  (0) 2018.05.26
    '🌱 SPRING/스프링 인 액션' 카테고리의 다른 글
    • JSP 라이브러리 이용하기
    • 스프링 뷰 리졸버 정의하기
    • 스프링에서의 요청 처리 순서
    • 어드바이스에서 파라메터 처리
    1HOON
    1HOON

    티스토리툴바