springboot配置文件映射
package alan.file.config;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.ListableBeanFactory;
import org.springframework.beans.factory.ObjectProvider;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.http.HttpMessageConverters;
import org.springframework.boot.autoconfigure.web.ResourceProperties;
import org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration;
import org.springframework.boot.autoconfigure.web.servlet.WebMvcProperties;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.env.Environment;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
import java.io.File;
/**
* @Auther: Alan
* @Date: 2019-08-30 15:02
* @Description: WebMvcConfigurerAdapter
*/
@Configuration
public class ResourceConfiguration extends WebMvcConfigurerAdapter {
private final Logger log = LoggerFactory.getLogger(ResourceConfiguration.class);
@Autowired
private Environment environment;
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
log.debug("Registering resource handler");
String resourceDirectory = "";
if (System.getProperty("os.name").toLowerCase().startsWith("w")) {
//windows 文件地址 如:D:/user
resourceDirectory = environment.getProperty("global.files.windowsPath");
} else {
resourceDirectory = environment.getProperty("global.files.linuxPath");
}
//通过 http://localhost:8080/files/文件名 访问
registry.addResourceHandler("/files/**").addResourceLocations("file:" + resourceDirectory);
mkdirResourceDir(resourceDirectory);
super.addResourceHandlers(registry);
}
private void mkdirResourceDir(String resourceDir) {
File dir = new File(resourceDir);
if (!dir.exists()) {
log.debug(resourceDir.concat(" directory does not exist"));
if (dir.mkdirs()) {
log.debug(resourceDir.concat(" directory create success"));
}
}
}
}