SpringBoot与Web
先在idea中选择场景
SpringBoot已经默认将这些常见配置好了,我们只需要在配置文件中指定少量配置就可以运行起来
然后我们可以开始编写业务代码了
SpringBoot与静态资源
WebMvcAutoConfiguration
打开WebMvcAutoConfiguration.java
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 
 | @Overridepublic void addResourceHandlers(ResourceHandlerRegistry registry) {
 if (!this.resourceProperties.isAddMappings()) {
 logger.debug("Default resource handling disabled");
 return;
 }
 Duration cachePeriod = this.resourceProperties.getCache().getPeriod();
 CacheControl cacheControl = this.resourceProperties.getCache().getCachecontrol().toHttpCacheControl();
 if (!registry.hasMappingForPattern("/webjars/**")) {
 customizeResourceHandlerRegistration(registry.addResourceHandler("/webjars/**")
 .addResourceLocations("classpath:/META-INF/resources/webjars/")
 .setCachePeriod(getSeconds(cachePeriod)).setCacheControl(cacheControl));
 }
 String staticPathPattern = this.mvcProperties.getStaticPathPattern();
 if (!registry.hasMappingForPattern(staticPathPattern)) {
 customizeResourceHandlerRegistration(registry.addResourceHandler(staticPathPattern)
 .addResourceLocations(getResourceLocations(this.resourceProperties.getStaticLocations()))
 .setCachePeriod(getSeconds(cachePeriod)).setCacheControl(cacheControl));
 }
 }
 
 | 
配置jquery
所有/webjars/下的资源,都去classpath:/MEFA-INF/resources/webjars/找
在Webjars中选择Maven,然后就可以导入你想要jquery的依赖了
比方安装了这个以后就可以通过下面的地址访问jquery了localhost:8080/webjars/jquery/3.3.1/jquery.js
| 12
 3
 4
 5
 
 | <dependency><groupId>org.webjars</groupId>
 <artifactId>jquery</artifactId>
 <version>3.5.0</version>
 </dependency>
 
 | 
默认映射
ResourceProperties 可以设置静态资源的配置,如缓存时间
| 12
 
 | @ConfigurationProperties(prefix = "spring.resources", ignoreUnknownFields = false)public class ResourceProperties {
 
 | 
还会在下面的路径中找(静态资源的文件夹)
比方说你要访问一个localhost:8080/myjs.js,如果找不到的话,就在下面的文件夹中寻找
| 12
 
 | private static final String[] CLASSPATH_RESOURCE_LOCATIONS = { "classpath:/META-INF/resources/","classpath:/resources/", "classpath:/static/", "classpath:/public/" };
 
 | 
欢迎界面
欢迎页面, 静态资源文件夹的/index.html, 见下面的代码
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 
 | @Beanpublic WelcomePageHandlerMapping welcomePageHandlerMapping(ApplicationContext applicationContext,
 FormattingConversionService mvcConversionService, ResourceUrlProvider mvcResourceUrlProvider) {
 WelcomePageHandlerMapping welcomePageHandlerMapping = new WelcomePageHandlerMapping(
 new TemplateAvailabilityProviders(applicationContext), applicationContext, getWelcomePage(),
 this.mvcProperties.getStaticPathPattern());
 welcomePageHandlerMapping.setInterceptors(getInterceptors(mvcConversionService, mvcResourceUrlProvider));
 return welcomePageHandlerMapping;
 }
 private Optional<Resource> getWelcomePage() {
 String[] locations = getResourceLocations(this.resourceProperties.getStaticLocations());
 return Arrays.stream(locations).map(this::getIndexHtml).filter(this::isReadable).findFirst();
 }
 
 private Resource getIndexHtml(String location) {
 return this.resourceLoader.getResource(location + "index.html");
 }
 
 | 
图标
配置自己的favicon.ico
SpringBoot2中没有这个东西,可能移到其他位置去了
定义自己的映射
利用配置文件来自己定义/的映射
| 1
 | spring.resources.static-locations = classpath:/hello/,classpath:/hello2/
 |