SpringBoot Web配置

Web相关配置

提供的自动配置

自动配置类:WebMvcAutoConfiguration

1.自动配置的ViewResolver
  • ContentNegotiatingViewResolver:代理给不同的ViewResolver处理不同的View。
  • BeanNameViewResolver:根据返回的字符串寻找相应的view。
  • InternalResourceViewResolver:设置前缀、后缀、控制器中的方法。
2.自动配置的静态资源

addResourceHandlers方法中定义配置
- 类路径文件:/static、/public、/resources、/META-INF/resources静态文件映射为/*,可以直接通过/context/访问。
- webjar

3.自动配置的Formatter和Converter

定义类实现Convert、GenericConvert、Formatter即会自动注册

4.自动配置的HttpMessageConverters
  • jackson的jar在类路径下,则自动注册。
  • gson的jar在类路径下,则自动注册。
5.自动配置的静态首页

类路径文件夹下的index.html自动映射

自定义配置
  • @Configuartion定义配置类,增加@EnableWebMvc注解类。
  • @Configuartion定义配置类继承WebMvcConfigurerAdapter,重写addViewControllers方法,不会覆盖WebMvcAutoConfiguration原有配置。
注册Servlet、Filter、Listener
  • 将xxServlet、xxFilter、xxListener声明为Spring Bean即可。
  • 将xxServlet、xxFilter、xxListener作为参数注册到相应的ServletRegistrationBean、FilterRegistrationBean、ServletListernerRegistrationBean。
代码配置Tomcat
  • 注册一个实现EmbeddedServletContainerCustomizer接口的Bean,实现其customize方法。
  • 若在@SpringBootApplication配置,需声明为static:
@Component
public static class CustomServletContainer implements EmbeddedServletContainerCustomizer{
    @Override
    public void customize(ConfigurableEmbeddedServletContainer container) {
        container.setPort(8888);//1
        container.addErrorPages(new ErrorPage(HttpStatus.NOT_FOUND, "/404.html"));
        container.setSessionTimeout(10,TimeUnit.MINUTES);
    }
}
SSL配置
1.生成证书

$JAVA_HOME\bin\keytool.exe -genkey -alias tomcat,当前目录下生成证书文件.keystore。

2.SpringBoot配置SSL
  • 将.keystore文件复制到项目根目录。
  • 配置项
# SpringBoot: context-path = contextPath = CONTEXT_PATH
server.port = 8443
server.ssl.key-store = .keystore
server.ssl.key-store-password = $pass
server.ssl.keyStoreType = JKS
server.ssl.keyAlias:tomcat
3.http重定向https
  • 配置TomcatEmbeddedServletContainerFactory,并且添加Tomcat的connector来实现。
  • @SpringBootApplication配置类增加:
   @Bean
   public EmbeddedServletContainerFactory servletContainer() {
     TomcatEmbeddedServletContainerFactory tomcat = new TomcatEmbeddedServletContainerFactory() {
         @Override
         protected void postProcessContext(Context context) {
           SecurityConstraint securityConstraint = new SecurityConstraint();
           securityConstraint.setUserConstraint("CONFIDENTIAL");
           SecurityCollection collection = new SecurityCollection();
           collection.addPattern("/*");
           securityConstraint.addCollection(collection);
           context.addConstraint(securityConstraint);
         }
       };

     tomcat.addAdditionalTomcatConnectors(httpConnector());
     return tomcat;
   }
   @Bean
   public Connector httpConnector() {
     Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
     connector.setScheme("http");
     connector.setPort(8080);
     connector.setSecure(false);
     connector.setRedirectPort(8443);
     return connector;
   }
配置Favicon
  • 配置开关:spring.mvc.favicon.enabled=true。默认true。
  • 配置icon:favicon.ico放在类路径文件夹下。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值