Spring boot with Git version
时间:2022-05-03
本文章向大家介绍Spring boot with Git version,主要内容包括5.23. Spring boot with Git version、5.23.2. VersionRestController 测试控制器、5.23.3. 创建 .gitattributes 文件、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。
本文节选自《Netkiller Java 手札》
5.23. Spring boot with Git version
Spring boot 每次升级打包发给运维操作,常常运维操作不当致使升级失败,开发怎样确认线上的jar/war包与升级包一致呢?
请看下面的解决方案
5.23.1. CommonRestController 公共控制器
所有 RestController将会集成 CommonRestController
package cn.netkiller.api.rest;
import org.springframework.http.HttpStatus;
import org.springframework.security.core.annotation.AuthenticationPrincipal;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseStatus;
public class CommonRestController {
@RequestMapping("ping")
@ResponseStatus(HttpStatus.OK)
public String welcome() {
return "PONG";
}
@RequestMapping("commit")
public String commit() {
return "$Id$";
}
@RequestMapping("auth")
@ResponseStatus(HttpStatus.OK)
public String auth(@AuthenticationPrincipal final UserDetails user) {
return String.format("%s: %s %s", user.getUsername(), user.getPassword(), user.getAuthorities());
}
}
5.23.2. VersionRestController 测试控制器
我们创建一个RestController并继承CommonRestController用来测试
package cn.netkiller.api.rest;
@RestController
@RequestMapping("/public/version")
public class VersionRestController extends CommonRestController {
private static final Logger logger = LoggerFactory.getLogger(VersionRestController.class);
public VersionRestController() {
// TODO Auto-generated constructor stub
}
@RequestMapping("welcome")
@ResponseStatus(HttpStatus.OK)
public String welcome() {
return "Welcome to RestTemplate version 1.0.";
}
}
5.23.3. 创建 .gitattributes 文件
# vim .gitattributes
src/main/java/cn/netkiller/api/rest/CommonRestController.java ident
使用curl命令调用commit接口可以显示当前war/jar最后一次提交的版本号码(你同样可以使用IE浏览器)
curl https://api.netkiller.cn/public/version/commit.json
$Id: 929bc9e4c90b4d68c25dc693618f23b33fd6ba0f $
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- Java 水题系列(3)回文素数
- NDB Cluster 8.0中的自动模式同步:第1部分
- MongoDB助力一个物流订单系统
- NDB Cluster 8.0中的自动模式同步:第2部分
- NetCore配置框架详解
- 初识ABP vNext(11):聚合根、仓储、领域服务、应用服务、Blob储存
- 群组复制MySQL Group Replication
- 关于自定义单选框InfoPreference的笔记
- Python爬虫之gerapy爬虫管理
- 内存地址中藏着的学问
- Python爬虫之crawlspider类的使用
- 数据结构 - 堆(Heap)
- 信息收集之主机发现:masscan
- 信息收集之社工字典
- CloudBase CMS 2.0 焕新升级,从「心」出发!