leolee1993atlive
4/16/2018 - 8:14 AM

Spring Boot外部图片

此功能可以让Spring Boot把D:/images/目录映射为/static/images/,是前端可以直接使用目录下的图片

@Configuration
public class WebAppConfigurer extends WebMvcConfigurerAdapter {

    @Value("${imagesPath}")
    private String mImagesPath;
    
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        if(mImagesPath.equals("") || mImagesPath.equals("${cbs.imagesPath}")){
            String imagesPath = CustomWebMvcConfigurerAdapter.class.getClassLoader().getResource("").getPath();
            if(imagesPath.indexOf(".jar")>0){
                imagesPath = imagesPath.substring(0, imagesPath.indexOf(".jar"));
            }else if(imagesPath.indexOf("classes")>0){
                imagesPath = "file:"+imagesPath.substring(0, imagesPath.indexOf("classes"));
            }
            imagesPath = imagesPath.substring(0, imagesPath.lastIndexOf("/"))+"/images/";
            mImagesPath = imagesPath;
        }
        LoggerFactory.getLogger(CustomWebMvcConfigurerAdapter.class).info("imagesPath="+mImagesPath);
        registry.addResourceHandler("/static/images/**").addResourceLocations(mImagesPath);

        super.addResourceHandlers(registry);
    }
}
# for images path
imagesPath: file:/D:/images/
verifyCodeImagesPath: D:/images/verifyCode/