配置文件加载
方式一
1、Controller上面配置
@PropertySource({"classpath:application.properties"})
2、增加属性
@Value("${web.images-path}")
private String filePath;
application.properties文件
web.images-path=C:\\Users\\Administrator\\Desktop\\pics\\ spring.web.resources.static-locations=classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/,classpath:/test/,file:${web.upload-path}
Uploadcontroller 文件
@RestController
@PropertySource("classpath:application.properties") //指定配置文件
public class UploadController {
// 增加属性
@Value("${web.images-path}")
private String filePath ;
@PostMapping("/upload")
public JsonData upload(@RequestParam("himg") MultipartFile file, HttpServletRequest request) {
System.out.println("显示注入的配置属性:"+filePath);
.....
}
效果
方式二:实体类配置文件
步骤:
1、添加 @Component 注解;
2、使用 @PropertySource 注解指定配置文件位置;
3、使用 @ConfigurationProperties 注解,设置相关属性;4、必须 通过注入IOC对象Resource 进来 , 才能在类中使用获取的配置文件值。
@Autowired
private ServerBean serverBean;
ServerBean文件
application.properties文件
#Server HTTP port.
server.port=8081
#测试配置文件注入
test.name=SpringProperties
test.domain=www.baidu.com
count=1000
GetController 文件
//注入Bean
@Autowired
private ServerBean serverBean;
/**
* 功能描述:通过ServerBean来获取配置文件中的数据
*
* @return
*/
@GetMapping("/v1/get_pro")
public Object getProperties(HttpServletRequest request){
maps.clear(); //清空
maps.put("uname",serverBean);
return maps;
}
效果
总之:
(1) @ConfigurationPropertiesScan 配置直接扫描,必须要配置@Value
//名称
@Value("${test.name}")
private String name;
(2) @ConfigurationProperties(prefix = "test") 根据前缀扫描
private String name;
(3) @ConfigurationProperties(prefix = "test") 根据前缀扫描,如果不匹配,就需要配置@Value
注入bean的方式,属性名称和配置文件里面的key一一对应,就用加@Value 这个注解 如果不一 样,就要加@value("${XXX}")
@Value("${count}") private int count;
效果: