注釈を用いて簡単なスプリングmvcを構築する.

6307 ワード

spring mvcフローは、クライアントからのhttp要求は、springのDispactch Servlet、Disppatch Servletを経由して適切なControllerを選択し、ビューコントローラに戻ることによって適切なページを選択する.
まず、まずWebInitクラスを作ります.このクラスは主にローディングプロファイルです.(注釈向けなので、配置ファイルがないです.配置類で代替します.).このクラスはAbstractAnnotationConfigDisplatServletInitiazerから継承されています.
package config;

import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;

public class WebAppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer{

    @Override
    protected Class>[] getRootConfigClasses() {
        return null;
    }

    @Override
    protected Class>[] getServletConfigClasses() {
        // TODO Auto-generated method stub
        return new Class> [] {WebConfig.class};
    }

    @Override
    protected String[] getServletMappings() {
        return new String []{"/"};
    }

}
そしてWebConfig類を設立し、配置について
package config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.ViewResolver;
import org.springframework.web.servlet.config.annotation.DefaultServletHandlerConfigurer;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
import org.springframework.web.servlet.view.InternalResourceViewResolver;

@Configuration
@EnableWebMvc
@ComponentScan("web")
public class WebConfig extends WebMvcConfigurerAdapter{
    @Bean
    public ViewResolver viewResolver(){
        InternalResourceViewResolver resolver=
                new InternalResourceViewResolver();
        resolver.setPrefix("/WEB-INF/views/");
        resolver.setSuffix(".jsp");
        resolver.setExposeContextBeansAsAttributes(true);
        return resolver;
    }
    @Override
    public void configureDefaultServletHandling(
            DefaultServletHandlerConfigurer configurer) {
        // TODO Auto-generated method stub
        configurer.enable();
    }

}
それからControllerを書きます
package web;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import static org.springframework.web.bind.annotation.RequestMethod.*;

@Controller
public class HomeController {
    @RequestMapping(value="/home",method=GET)
    public String home(){
        return "home";
    }
}
最後に、WEB-INFでview/home.jspを作成します.
サーバーを起動して、Hにアクセスします.ttp://localhost:8080/home