如何在Spring Boot的JSP中渲染buildInfo()生成的版本信息
解决方案:直接通过Spring Boot的
BuildProperties Bean访问 你可以直接在JSP中通过EL表达式引用Spring Boot自动配置的BuildProperties Bean,它会自动封装build-info.properties里的所有构建信息,完全不需要额外配置或重复定义属性。
具体步骤很简单:
- 确保你已经在
build.gradle中保留了springBoot { buildInfo() }配置,这会自动生成构建信息并让Spring Boot注册BuildPropertiesBean。 - 在你的JSP页面中,直接使用EL表达式获取版本号:
<p>当前应用版本:${buildProperties.version}</p>
除了version,你还可以访问其他构建属性,比如:
${buildProperties.group}:项目组ID${buildProperties.name}:项目名称${buildProperties.time}:构建时间(格式为ISO-8601)
为什么这个方案更优?
- 完全复用
buildInfo()插件生成的信息,没有冗余配置,避免了你提到的重复定义application.version的问题。 - 不需要修改
application.properties或添加额外的Gradle任务,保持配置简洁。 - 直接对接Spring Boot的原生支持,稳定性更高。
关于你之前的<spring:eval>方案失效的原因
理论上,build.version属性应该会被Spring Boot自动加载到Environment中,但在JSP环境下,可能因为Spring标签的上下文解析问题,导致无法正确读取。而直接引用BuildProperties Bean是更直接、更可靠的方式,因为它就是Spring Boot专门为暴露构建信息设计的组件。
注意事项
- 这个方案要求你的Spring Boot版本在1.4及以上(
BuildProperties类从该版本开始引入),如果你的版本过老,建议升级到稳定的新版本。 - 确保你的JSP页面已经正确启用了EL表达式(一般Spring Boot项目默认是启用的,如果有问题,可以在页面开头添加
<%@ page isELIgnored="false" %>)。
内容的提问来源于stack exchange,提问作者ChrisDekker
相关产品推荐
相关产品推荐

