【spring boot】支持webjars
前言
- spring boot 2.4.3
spring boot 支持webjars
通過添加 ResourceHandlerRegistry 實現。有兩種方式可以實現:
參考WebMvcConfigurationSupport。
spring boot默認對webjars提供支持
WebMvcAutoConfiguration類自動配置時,添加了對webjars的支持。
@Overrideprotected void addResourceHandlers(ResourceHandlerRegistry registry) {super.addResourceHandlers(registry);if (!this.resourceProperties.isAddMappings()) {logger.debug("Default resource handling disabled");return;}ServletContext servletContext = getServletContext();addResourceHandler(registry, "/webjars/**", "classpath:/META-INF/resources/webjars/");addResourceHandler(registry, this.mvcProperties.getStaticPathPattern(), (registration) -> {registration.addResourceLocations(this.resourceProperties.getStaticLocations());if (servletContext != null) {registration.addResourceLocations(new ServletContextResource(servletContext, SERVLET_LOCATION));}});}WebMvcAutoConfiguration類自動配置的起效條件:
@Configuration(proxyBeanMethods = false) @ConditionalOnWebApplication(type = Type.SERVLET) @ConditionalOnClass({ Servlet.class, DispatcherServlet.class, WebMvcConfigurer.class }) @ConditionalOnMissingBean(WebMvcConfigurationSupport.class) @AutoConfigureOrder(Ordered.HIGHEST_PRECEDENCE + 10) @AutoConfigureAfter({ DispatcherServletAutoConfiguration.class, TaskExecutionAutoConfiguration.class,ValidationAutoConfiguration.class }) public class WebMvcAutoConfiguration {... }當滿足WebMvcAutoConfiguration類自動配置的起效條件時,默認對webjars提供支持。當你引入的jar中,有付合webjars規則的,就可以通過webjars訪問到。比如:http://localhost:8080/webjars/jquery/3.1.1/jquery.min.js。
當不滿足WebMvcAutoConfiguration類自動配置的起效條件時,不支持webjars。此時,需要手動添加對webjars的支持。
手動添加對webjars的支持
假如你按照某個教程自定義一個WebMvcConfigurationSupport,并得到了想要的功能時,WebMvcAutoConfiguration將不會起效。此時,如果還需要對webjars的支持,就需要手動添加對webjars的支持。(ps:盡量不要自定義WebMvcConfigurationSupport,讓WebMvcAutoConfiguration起效。WebMvcAutoConfiguration不起效后,那WebMvcAutoConfiguration中提供的默認配置就不起效。此種情況下,你需要手動添加那些本該默認提供的功能。另,大多數時候,你自定義WebMvcConfigurationSupport得到的功能,其實有另外一種方法。)
如果想要了解的更多,可以參考這里。
參考
https://spring.io/blog/2014/01/03/utilizing-webjars-in-spring-boot
https://blog.coding.net/blog/spring-static-resource-process
總結
以上是生活随笔為你收集整理的【spring boot】支持webjars的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 神曲的功效与作用、禁忌和食用方法
- 下一篇: 【CentOS】EOF使用