spring-boot - Spring Boot 不读取属性
问题描述
在主控制器中,我可以读取属性。如果我有一个属性类并尝试访问这些属性或在每个需要属性的类中注入以下值,我将无法这样做。缺什么?我不想将变量传递给主控制器的所有函数。
@SpringBootApplication
@Configuration
public class ApplicationProperties {
@Autowired
@Value("${file.location}")
private String fileLocation;
@Value("${file.name}")
private String fileName;
/**
* @return the fileLocation
*/
@RequestMapping(value="/")
public String getFileLocation() {
return fileLocation;
}
/**
* @return the fileName
*/
@RequestMapping(value="file")
public String getFileName() {
return fileName;
}
}
解决方案
首先,除非该类具有 main 方法,否则您不需要注释 @SpringBootApplication。
其次,您不需要在 fileLocation 上使用 @Autowired 注释,因为 @Value 就足够了。
最后,您需要注释 @RestController 因为它是一个 REST api。
现在:
要么向你的类添加主方法并省略@configuration,否则你需要创建一个带有注释@SpringBootApplication的主类并保留@RestController。
推荐阅读
- node.js - 如何修复 NPM 模块的 `sh: ___: command not found`
- javascript - 在 dev、beta 和 prod 环境中工作时的图像链接
- java - IntelliJ 将 .form 和 .class 分组在一个目录下,这与取消分组相同吗?
- ios - 如何根据目标编译具有不同选项的相同 CocoaPod?
- node.js - 如何使用 apollo graphQL 拼接模式?
- javascript - 在NodeJS中的回调函数之后返回一个值
- javascript - 我对全局工作者和异步的 PDF.JS 有错误
- c++ - unordered_map 什么时候返回 -1?
- python - Pygame表面突然反转变量
- express - 包含 where 条件,但在包含之前保留所有结果