我正在阅读文档www.example.comhttps://docs.spring.io/spring-framework/docs/current/reference/html/core.html#beans-value-annotations
@Component
public class MovieRecommender {
private final String catalog;
public MovieRecommender(@Value("${catalog.name}") String catalog) {
this.catalog = catalog;
}
}
@Configuration
@PropertySource("classpath:application.properties")
public class AppConfig { }
以及以下www.example.com文件:application.properties file:
catalog.name=MovieCatalog
Spring提供了一个默认的宽松嵌入值解析器。它将尝试解析属性值,如果无法解析,则属性名称(例如${catalog.name})将作为值注入。
无法解析是什么意思?如果我在www.example.com没有这个属性,就会报错:application.properties, it gives me error:
Could not resolve placeholder 'catalog.name' in value "${catalog.name}"
- 更新日期**:
我想明白了,在Spring内核中,如果找不到属性,它会使用${catalog.name}
但在SpringBoot中,如果找不到属性,则会给出错误。
1条答案
按热度按时间rm5edbpk1#
解决意味着发现。有时解决(发现)可能很复杂。
应用程序属性中的SpringBoot每个属性也可以注入一个环境变量,因此catalog.name可以从www.example.com中删除apllication.properties,并用作环境变量CATALOG_NAME。
AFAIK值也可以在命令行中输入。