可以通过添加 ${spring-boot.version}
。
如何为/info
执行器端点做同样的事情?我尝试将以下两个以下内容添加到我的应用程序属性,但没有运气:
-
info.app.spring-boot.version=${spring-boot.version}
-
info.app.spring-boot.version=@spring-boot.version@
/info
端点将打印$ {spring-boot.version}"(or&quot@spring-boot.version@&quort'(,无法解决占位符变量
我的下一个想法是为Spring Boot版本创建Maven属性,并在父母部分中引用它
<properties>
<spring.boot.version>1.5.3.RELEASE</spring.boot.version>
</properties>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>${spring.boot.version}</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
但这无效,因为Maven处理<parent>
节后解决了占位持有人的变量
更新
以下确实有效,但这不是理想的:
@Component
public class MyInfoContributor implements InfoContributor {
@Override
public void contribute(Info.Builder builder) {
builder.withDetail("spring-boot.version", SpringBootVersion.getVersion());
}
}
这应该有效:
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<additionalProperties>
<spring-boot-version>${spring.boot.version}</spring-boot-version>
</additionalProperties>
</configuration>
</plugin>
您不需要app.info属性。
正如您在更新中提到的那样,InfoContributor
可用于根据SpringBootVersion
中的值添加此属性:
@Component
public class SpringBootVersionInfoContributor implements InfoContributor {
@Override
public void contribute(Info.Builder builder) {
builder.withDetail("spring-boot.version", SpringBootVersion.getVersion());
}
}
这似乎是添加此细节的一种非常扎实的惯用方法。