13-SpringBoot进行Web开发

时间:2021-06-17 17:15:28   收藏:0   阅读:0

我们创建一个d-springboot-web模块,所有的例子都在这个模块着实现

1、静态资源读取探究

这里我们需要知道springboot可以从什么位置读取静态资源。

首先关于静态资源的配置是在WebMvcAutoConfiguration这个自动配置类中配置的,我们首先打开该类。

然后找到其中的一个静态内部类:WebMvcAutoConfigurationAdapter,是一个适配类,部分源码如下,可以看到这个类和三个属性配置类绑定了:WebMvcProperties.class, ResourceProperties.class, WebProperties.class

    @Configuration(
        proxyBeanMethods = false
    )
    @Import({WebMvcAutoConfiguration.EnableWebMvcConfiguration.class})
    @EnableConfigurationProperties({WebMvcProperties.class, ResourceProperties.class, WebProperties.class})
    @Order(0)
    public static class WebMvcAutoConfigurationAdapter implements WebMvcConfigurer {
     ......
     	......
     		......
}

我们可以看到该类上面的@Import注解中导入了一个组件:WebMvcAutoConfiguration.EnableWebMvcConfiguration.class

这个EnableWebMvcConfiguration类中有一个方法:addResourceHandlers,添加资源处理器,其中就定义了默认静态资源的读取位置,如下

protected void addResourceHandlers(ResourceHandlerRegistry registry) {
            super.addResourceHandlers(registry);
            if (!this.resourceProperties.isAddMappings()) {
                logger.debug("Default resource handling disabled");
            } else {
                ServletContext servletContext = this.getServletContext();
                this.addResourceHandler(registry, "/webjars/**", "classpath:/META-INF/resources/webjars/");
                this.addResourceHandler(registry, this.mvcProperties.getStaticPathPattern(), (registration) -> {
                    registration.addResourceLocations(this.resourceProperties.getStaticLocations());
                    if (servletContext != null) {
                        registration.addResourceLocations(new Resource[]{new ServletContextResource(servletContext, "/")});
                    }

                });
            }
        }

2、首页跳转和项目网页图标设置

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!