Web开发的自动配置类:org.springframework.boot.autoconfigure.web.WebMvcAutoConfiguration
位置:
![](file:///C:/Users/liuya/AppData/Local/Temp/enhtmlclip/Image.png)
![](https://images2018.cnblogs.com/blog/994129/201804/994129-20180406233704047-1506055164.png)
内部使用条件配置:
@ConditionalOnClass,说明其内部条件是有servlet(说明是一个web工程)、DispatcherSevlet(有SpingMVC)、WebMvcConfigurerAdapter(webMvc适配器),三者是and关系,必须全部都包含。
@ConditionalOnClass,说明其内部条件是有servlet(说明是一个web工程)、DispatcherSevlet(有SpingMVC)、WebMvcConfigurerAdapter(webMvc适配器),三者是and关系,必须全部都包含。
![](file:///C:/Users/liuya/AppData/Local/Temp/enhtmlclip/Image(1).png)
解释
@ConditionalOnMissingBean({HiddenHttpMethodFilter.class})
public OrderedHiddenHttpMethodFilter hiddenHttpMethodFilter() {
return new OrderedHiddenHttpMethodFilter();
}
@ConditionalOnMissingBean判断是否有这个bean,如果有就正常执行,没有这里创建一个
自带自动配置视图解析器:
![](https://images2018.cnblogs.com/blog/994129/201804/994129-20180406233733904-1484839113.png)
ViewResolver
![](file:///C:/Users/liuya/AppData/Local/Temp/enhtmlclip/Image(2).png)
其前缀和后缀,在view对象中配置。
1.进入规则为 /
如果进入SpringMVC的规则为/时,Spring Boot的默认静态资源的路径为(建议把资源放入指定路径中去,一般是放入如下文件下去):
spring.resources.static-locations=classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/
不指定资源位置时,也可访问。
消息转化器配置:
自定义消息转化器,只需要在@Configuration的类中添加消息转化器的@bean加入到Spring容器,就会被Spring Boot自动加入到容器中。(两种方法,这里是其一)
自定义消息转化器,只需要在@Configuration的类中添加消息转化器的@bean加入到Spring容器,就会被Spring Boot自动加入到容器中。(两种方法,这里是其一)
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 package com.example.demo; 2 3 import org.springframework.boot.Banner; 4 import org.springframework.boot.SpringApplication; 5 import org.springframework.boot.SpringBootConfiguration; 6 import org.springframework.boot.autoconfigure.SpringBootApplication; 7 import org.springframework.context.annotation.Bean; 8 import org.springframework.http.converter.StringHttpMessageConverter; 9 import org.springframework.stereotype.Controller; 10 import org.springframework.web.bind.annotation.RequestMapping; 11 import org.springframework.web.bind.annotation.ResponseBody; 12 13 import java.nio.charset.Charset; 14 15 16 @Controller 17 @SpringBootApplication 18 @SpringBootConfiguration 19 public class Application { 20 21 @RequestMapping("hello") 22 @ResponseBody 23 public String hello() { 24 return "hello world!中国最好的人就是我"; 25 } 26 27 public Application() { 28 } 29 30 /** 31 * 自定义消息装换器 32 * 33 * @return 34 */ 35 @Bean 36 public StringHttpMessageConverter stringHttpMessageConverter() { 37 StringHttpMessageConverter converter = new StringHttpMessageConverter(Charset.forName("ISO-8859-1")); 38 return converter; 39 } 40 41 42 public static void main(String[] args) { 43 SpringApplication springApplication = new SpringApplication(Application.class); 44 springApplication.setBannerMode(Banner.Mode.OFF); 45 springApplication.run(args); 46 } 47 }
SpingBoot配置拦截器
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 package com.example.demo; 2 import java.nio.charset.Charset; 3 import java.util.List; 4 5 import javax.servlet.http.HttpServletRequest; 6 import javax.servlet.http.HttpServletResponse; 7 8 import org.springframework.context.annotation.Configuration; 9 import org.springframework.http.converter.HttpMessageConverter; 10 import org.springframework.http.converter.StringHttpMessageConverter; 11 import org.springframework.web.servlet.HandlerInterceptor; 12 import org.springframework.web.servlet.ModelAndView; 13 import org.springframework.web.servlet.config.annotation.InterceptorRegistry; 14 import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; 15 16 @Configuration //申明这是一个配置 17 public class MySrpingMVCConfig extends WebMvcConfigurerAdapter{ 18 19 // 自定义拦截器 20 @Override 21 public void addInterceptors(InterceptorRegistry registry) { 22 HandlerInterceptor handlerInterceptor = new HandlerInterceptor() { 23 @Override 24 public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) 25 throws Exception { 26 System.out.println("自定义拦截器............"); 27 return true; 28 } 29 30 @Override 31 public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, 32 ModelAndView modelAndView) throws Exception { 33 34 } 35 36 @Override 37 public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, 38 Exception ex) throws Exception { 39 } 40 }; 41 registry.addInterceptor(handlerInterceptor).addPathPatterns("/**"); 42 } 43 44 // 自定义消息转化器的第二种方法 45 @Override 46 public void configureMessageConverters(List<HttpMessageConverter<?>> converters) { 47 StringHttpMessageConverter converter = new StringHttpMessageConverter(Charset.forName("UTF-8")); 48 converters.add(converter); 49 } 50 51 }