回覆列表
  • 1 # 寫程式設計師的程式碼

    介紹

    之前搭建SpringMvc專案要配置一系列的配置檔案,比如web.xml,applicationContext.xml,dispatcher.xml。Spring 3.X之後推出了基於JavaConfig方式以及註解的形式的配置。在一定程度上簡化了Spring專案的配置。近幾年特別火的SpringBoot,大大的簡化了建立專案,基本不需要配置配置檔案,就可以快速的建立一個專案。其中一個重要的原因就是採用JavaConfig和註解幫我們做了很多配置的事。

    springmvc的java配置

    相對於xml配置,java配置只需簡單幾部就能搞定。

    配置 DispatcherServlet

    DispatcherServlet 是 Spring MVC 的核心元件,它是一個 request 首先到達的地方,負責 request 在其他各個元件間的傳遞加工,在過去,像DispatcherServlet 這樣的 servlets 是使用 web.xml 檔案配置的,當然現在也可以這樣做….但是由於時代的進步,基於 Servlet 3 和 Spring 3.1 的一些新特性,我們可以用更簡單的方式來配置,即使用 Java 程式碼。

    public class SpittrWebAppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {

    /**

    * 指定spring容器的配置類

    * @return

    */

    @Override

    protected Class<?>[] getRootConfigClasses() {

    return new Class[]{MySpringConfig.class};

    }

    /**

    * springmvc容器的配置類

    * @return

    */

    @Override

    protected Class<?>[] getServletConfigClasses() {

    return new Class[]{MyServletConfig.class};

    }

    /**

    * 配置攔截請求路徑

    * @return

    */

    @Override

    protected String[] getServletMappings() {

    return new String[]{"/"};

    }

    }

    2. 啟用spring mvc功能

    基於 Java 的方式超級簡單,你的配置類只需要帶有一個@EnableWebMvc註解,就像這樣子。

    /**

    * 有關springmvc的配置都在這裡面,可以重寫其很多方法,比如攔截器,編碼等

    */

    @Configuration

    @EnableWebMvc

    @ComponentScan("com.zy.controller")

    public class MyServletConfig implements WebMvcConfigurer {

    //配置檢視解析器

    @Bean

    public ViewResolver viewResolver() {

    InternalResourceViewResolver resolver = new InternalResourceViewResolver();

    resolver.setPrefix("/WEB-INF/views/");

    resolver.setSuffix(".jsp");

    resolver.setExposeContextBeansAsAttributes(true);

    return resolver;

    }

    }

    3. 一個簡單的Controller

    在 Spring MVC中,Controller 就是類,只是類中的方法們帶有@RequestMapping註解,以表明它們各自處理什麼樣的 Request。

    讓我們看一個簡單的Controller示例,它用來處理目標路徑是/的 Request。

    @Controller

    public class HelloController {

    //請求是/hello,返回的試圖名是index,dispatcherServlet會根據springmvc的配置去找WEB-INF/views/index.jsp頁面

    @GetMapping("/hello")

    public String hello(){

    return "index";

    }

    }

    總結

    java配置的更簡潔,取代了web.xml的繁瑣,但是注意這是必要要servlet3.0之後的才能使用。

  • 中秋節和大豐收的關聯?
  • 生命的意義是在於永恆,還是在於瞬間?