Java 使用Spring Boot 2.2访问应用程序文件夹外的静态文件

Java 使用Spring Boot 2.2访问应用程序文件夹外的静态文件,java,spring,spring-boot,war,staticresource,Java,Spring,Spring Boot,War,Staticresource,在我们的应用程序中,我们必须从应用程序文件夹之外的文件夹中提供静态文件。除了默认位置之外,静态文件夹的位置是/var/tmp/myapp/attachments。实现该应用程序是为了创建一个可部署的war(扩展SpringBootServletInitializer.class)。使用Spring Boot 2.2和Tomcat 9 以下是我的应用程序的设置: 1. application.yml file main: web-application-type: none

在我们的应用程序中,我们必须从应用程序文件夹之外的文件夹中提供静态文件。除了默认位置之外,静态文件夹的位置是/var/tmp/myapp/attachments。实现该应用程序是为了创建一个可部署的war(扩展SpringBootServletInitializer.class)。使用Spring Boot 2.2和Tomcat 9

以下是我的应用程序的设置:

1. application.yml file
    main:
        web-application-type: none

    # tried adding static resource location here but did not work
    #resources:
         #static-locations: classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/,file:///var/tmp/myapp/attachments/

2. Application.class
     @SpringBootApplication(
    // We are including Spring, but don't want it to stomp on the legacy servlet container, so disable various configurations.
    exclude = {
            DispatcherServletAutoConfiguration.class,
            ErrorMvcAutoConfiguration.class,
            WebMvcAutoConfiguration.class,
            MongoAutoConfiguration.class,
            MongoDataAutoConfiguration.class},
    scanBasePackages = {"com.app", "com.appmodule"})
 public class Application extends SpringBootServletInitializer {

   @Override
   protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
     return builder.sources(Application.class);
   }
 }

3. pom.xml
     <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-cache</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
为访问静态位置而创建的链接: 1. 2.还尝试:

根据当前的应用程序配置,您能帮我找出实现它的最佳方法吗

谢谢大家!

          @Configuration
          public class StaticResourceConfiguration implements WebMvcConfigurer {
           @Override
           public void addResourceHandlers(ResourceHandlerRegistry registry) {
              registry.addResourceHandler("/myapp/**")
                      .addResourceLocations("classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/,file:///var/tmp/myapp/attachments/");
       }
     }