【发布时间】:2017-03-18 09:03:43
【问题描述】:
我有一个 spring-boot 应用程序。我想我需要覆盖 bean 属性,因为我想在应用程序启动之前创建计算属性。 在我的 YAML 配置文件中
#this property needs to be calculated
myport:
port: 123
server:
port: ${myport.port}
但是,在应用程序启动后 server.port 属性值 123 但我不想要这个值,我想要 myport用特殊方法计算的值。
我尝试编写bean(如下所示),但它也不起作用。它应该设置为 9999,而不是 123。
@ConfigurationProperties(prefix = "myport", ignoreUnknownFields = true)
public class ServerPortConfigurationBean extends ServerProperties {
@Override
public Integer getPort() {
return super.getPort();
}
@Override
public void setPort(Integer port) {
super.setPort(9999);
}
}
【问题讨论】:
-
如何启动 Spring-Boot 服务器? Maven 或 Gradle 或任何其他方式?
-
我用 gradle bootRun 运行应用程序
-
您的端口需要特殊的计算逻辑,还是只想为您的实例使用随机可用端口?对于后者,只需设置属性 server.port=0,然后 Spring Boot 会随机取一个可用端口。
标签: java spring spring-boot properties configuration