介紹
之前搭建SpringMvc專案要配置一系列的配置檔案,比如web.xml,applicationContext.xml,dispatcher.xml。Spring 3.X之後推出了基於JavaConfig方式以及註解的形式的配置。在一定程度上簡化了Spring專案的配置。近幾年特別火的SpringBoot,大大的簡化了建立專案,基本不需要配置配置檔案,就可以快速的建立一個專案。其中一個重要的原因就是採用JavaConfig和註解幫我們做了很多配置的事。
相對於xml配置,java配置只需簡單幾部就能搞定。
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容器的配置類
protected Class<?>[] getServletConfigClasses() {
return new Class[]{MyServletConfig.class};
* 配置攔截請求路徑
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之後的才能使用。
介紹
之前搭建SpringMvc專案要配置一系列的配置檔案,比如web.xml,applicationContext.xml,dispatcher.xml。Spring 3.X之後推出了基於JavaConfig方式以及註解的形式的配置。在一定程度上簡化了Spring專案的配置。近幾年特別火的SpringBoot,大大的簡化了建立專案,基本不需要配置配置檔案,就可以快速的建立一個專案。其中一個重要的原因就是採用JavaConfig和註解幫我們做了很多配置的事。
springmvc的java配置相對於xml配置,java配置只需簡單幾部就能搞定。
配置 DispatcherServletDispatcherServlet 是 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之後的才能使用。