springboot的自动配置:
一般都有一个java类作为配置文件类,用@Configuration注解标识
一个配置属性文件,用@ConfigurationProperties标识
除了springboot的自动配置,开发者还可以自定定义配置文件
1、用@ConfigurationProperties注解定义属性配置文件
package com.web.auction.config;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
@Component //将该配置文件交由spring容器托管
@ConfigurationProperties(prefix="file") //声明前缀即声明在“xxx.yml文件中命名空间”
public class FileConfigurationProperties {
//这里的属性与yml中声明的属性对应
private String staticAccessPath;
private String uploadFileFolder;
public String getStaticAccessPath() {
return staticAccessPath;
}
public void setStaticAccessPath(String staticAccessPath) {
this.staticAccessPath = staticAccessPath;
}
public String getUploadFileFolder() {
return uploadFileFolder;
}
public void setUploadFileFolder(String uploadFileFolder) {
this.uploadFileFolder = uploadFileFolder;
}
}
2、application.yml中声明属性的值
@ConfigurationProperties(prefix=“file”)声明前缀后,可以在yml文件中用该前缀给属性赋值
file:
staticAccessPath: '/upload/**'
uploadFileFolder: 'D:\\file'
3、将属性配置文件注入配置文件中
配置文件用@Configuration注解标识
package com.web.auction.config;
import java.util.ArrayList;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
import com.web.auction.interceptor.CheckUserInterceptor;
@Configuration
public class WebMvcConfiguration extends WebMvcConfigurerAdapter {
@Autowired
private FileConfigurationProperties fileConfigurationProperties;
@Override //添加路径注册,配置本地路径和url路径的映射
public void addResourceHandlers(ResourceHandlerRegistry registry) {
//映射本地路径和http路径
//addResourceHandler("/upload/**") http路径:http://localhost:8080/upload/xxx.jpg
//addResourceLocations("file:D://file/") 本地路径:D://file/xxx.jpg
//registry.addResourceHandler("/upload/**").addResourceLocations("file:D://file/");
registry.addResourceHandler(fileConfigurationProperties.getStaticAccessPath())
.addResourceLocations("file:"+ fileConfigurationProperties.getUploadFileFolder() + "/");
}
}