mis*_*tic 8 java configuration spring properties spring-boot
我有APP_ID
应该随机生成的应用程序属性(UUID),并且对于整个 Spring Boot 应用程序应该具有相同的值。
我所做的是以下内容:我在application.properties
文件中定义了APP_ID=${random.uuid}
.
UUID 已成功创建,但是对于每个属性引用,@Value("${APP_ID}")
我将获得不同的 UUID。
示例:在课堂上Foo
我想使用appId
:
@Value("${APP_ID}")
private String appId;
Run Code Online (Sandbox Code Playgroud)
在课堂上,Bar
我也想使用appId
:
@Value("${APP_ID}")
private String appId;
Run Code Online (Sandbox Code Playgroud)
但是,appId
inBar
总是与appId
in不同Foo
。
我在这个线程中读到这种行为是正确的。
什么是正确的实现总是相同的APP_ID
?
一种方法是“将单个随机值绑定到带注释的 bean 中,然后使用该 bean 来配置需要相同值的任何其他内容”(正如wilkinsoa在该线程中所建议的那样)。@ConfigurationProperties
这会产生一个application.properties
文件:
app.id=${random.uuid}
Run Code Online (Sandbox Code Playgroud)
配置属性文件是:
@Configuration
@ConfigurationProperties(prefix = "app")
public class AppProperties {
private String id;
public String getId() {
return this.id;
}
public void setId(String id) {
this.id = id;
}
}
Run Code Online (Sandbox Code Playgroud)
使用 id 的类:
@Component
public class DoStuff {
private AppProperties appProperties;
@Autowired
public DoStuff(AppProperties appProperties) {
this.appProperties = appProperties;
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4819 次 |
最近记录: |