文章目录
- 响应头添加版本号
- 获取版本号
- 添加响应处理器
- 请求结果
- 打包项目后缀添加版本号和时间
- 实现
- 打包结果
响应头添加版本号
获取版本号
在 pom.xml
中,在 project.version
下定义版本号
在 application.yml
获取 pom.xml
中 project.version
中的信息
添加响应处理器
完整代码如下:
通过 @Value("${project.version}")
获取 application.yml
中的 project.version
,并写入响应头
import jakarta.servlet.http.HttpServletResponse;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.core.MethodParameter;
import org.springframework.http.MediaType;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.http.server.ServerHttpRequest;
import org.springframework.http.server.ServerHttpResponse;
import org.springframework.http.server.ServletServerHttpResponse;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.servlet.mvc.method.annotation.ResponseBodyAdvice;
@ControllerAdvice
public class GlobalResponseBodyHandler implements ResponseBodyAdvice<Object> {
@Value("${project.version}")
private String version;
@Override
public boolean supports(MethodParameter returnType, Class<? extends HttpMessageConverter<?>> converterType) {
return true;
}
@Override
public Object beforeBodyWrite(Object body, MethodParameter returnType, MediaType selectedContentType, Class<? extends HttpMessageConverter<?>> selectedConverterType, ServerHttpRequest request, ServerHttpResponse response) {
ServletServerHttpResponse ssResp = (ServletServerHttpResponse) response;
HttpServletResponse resp = ssResp.getServletResponse();
resp.setHeader("version", StringUtils.isNotEmpty(version) ? version : "unknown");
return body;
}
}
请求结果
打包项目后缀添加版本号和时间
实现
在 pom.xml
中的 build
标签,写入以下代码
<build>
<!--打包后生成文件名-->
<finalName>${project.artifactId}-${project.version}_${current.time}</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<mainClass>com.chh.api.ChhApplication</mainClass>
<executable>true</executable>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>3.0.0</version>
<executions>
<execution>
<id>timestamp-property</id>
<goals>
<goal>timestamp-property</goal>
</goals>
</execution>
</executions>
<configuration>
<name>current.time</name>
<pattern>yyyyMMdd-HHmmss</pattern>
<timeZone>GMT+8</timeZone>
</configuration>
</plugin>
<!-- 打包跳过测试-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
</plugins>
</build>