spring boot 访问 jar 包内部的静态资源
·
spring boot 访问 jar 包内部的静态资源
相关依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
静态文件存放位置:
spring boot 项目的 resources 下
resources
|_ XXX-static //静态文件存放位置
文件结构
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import org.thymeleaf.spring5.templateresolver.SpringResourceTemplateResolver;
import org.thymeleaf.templatemode.TemplateMode;
import java.nio.charset.StandardCharsets;
@Configuration
public class XXXUiConfig implements WebMvcConfigurer {
@Autowired
private ApplicationContext applicationContext;
@Bean
public SpringResourceTemplateResolver myTemplateResolver() {
SpringResourceTemplateResolver resolver = new SpringResourceTemplateResolver();
resolver.setApplicationContext(this.applicationContext);
resolver.setPrefix("classpath:/XXX-static/");
resolver.setSuffix(".html");
resolver.setTemplateMode(TemplateMode.HTML);
resolver.setCharacterEncoding(StandardCharsets.UTF_8.name());
resolver.setCacheable(true);
resolver.setOrder(10);
resolver.setCheckExistence(true);
return resolver;
}
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
if (!registry.hasMappingForPattern("/mypath/**")) {
registry.addResourceHandler("/mypath/**")
.addResourceLocations("classpath:/XXX-static/");
}
}
}
总结:
1.创建一个spring boot 配置类(@Configuration)实现 WebMvcConfigurer ;
2.注册一个SpringResourceTemplateResolver 组件(@Bean),配置静态文件位置;
3.实现方法 addResourceHandlers,将url访问路径和静态文件进行关联;
更多推荐




所有评论(0)