Spring Boot 项目外静态文件映射为网络路径

Spring Boot 2

package cn.com.xuxiaowei.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.lang.NonNull;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

/**
 * @author xuxiaowei
 * @see WebMvcConfigurationSupport
 * @see WebMvcConfigurer
 * @since 0.0.1
 */
@Configuration
public class WebMvcConfigurationSupportConfig extends WebMvcConfigurationSupport {

    @Override
    public void addResourceHandlers(@NonNull ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/**").addResourceLocations("file:/web-file/");
    }

}
package cn.com.xuxiaowei.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.lang.NonNull;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

/**
 * @author xuxiaowei
 * @see WebMvcConfigurationSupport
 * @see WebMvcConfigurer
 * @since 0.0.1
 */
@Configuration
public class WebMvcConfigurerConfig implements WebMvcConfigurer {

    @Override
    public void addResourceHandlers(@NonNull ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/**").addResourceLocations("file:/web-file/");
    }

}

Spring Boot 3

package cn.com.xuxiaowei.config;

import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.FileSystemResource;
import org.springframework.web.reactive.function.server.RouterFunction;
import org.springframework.web.reactive.function.server.RouterFunctions;
import org.springframework.web.reactive.function.server.ServerResponse;

/**
 * @author xuxiaowei
 * @since 0.0.1
 */
@Slf4j
@Configuration
public class RouterFunctionConfig {

    @Bean
    public RouterFunction<ServerResponse> routerFunction() {
        return RouterFunctions.resources("/**", new FileSystemResource("/web-file/"));
    }

}
package cn.com.xuxiaowei.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.lang.NonNull;
import org.springframework.web.reactive.config.ResourceHandlerRegistry;
import org.springframework.web.reactive.config.WebFluxConfigurationSupport;
import org.springframework.web.reactive.config.WebFluxConfigurer;

/**
 * @author xuxiaowei
 * @see WebFluxConfigurationSupport
 * @see WebFluxConfigurer
 * @since 0.0.1
 */
@Configuration
public class WebFluxConfigurationSupportConfig extends WebFluxConfigurationSupport {

    @Override
    public void addResourceHandlers(@NonNull ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/**").addResourceLocations("file:/web-file/");
    }

}
package cn.com.xuxiaowei.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.lang.NonNull;
import org.springframework.web.reactive.config.ResourceHandlerRegistry;
import org.springframework.web.reactive.config.WebFluxConfigurationSupport;
import org.springframework.web.reactive.config.WebFluxConfigurer;

/**
 * @author xuxiaowei
 * @see WebFluxConfigurationSupport
 * @see WebFluxConfigurer
 * @since 0.0.1
 */
@Configuration
public class WebFluxConfigurerConfig implements WebFluxConfigurer {

    @Override
    public void addResourceHandlers(@NonNull ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/**").addResourceLocations("file:/web-file/");
    }

}