SpringShell 应用默认的命令提示符是 Shell:>, Spring 提供了PromptProvider 接口, 可以让我们轻松自定义自己的命令提示符. 这样会让我们的应用看起来更专业. 自定义命令提示符的方式也很简单, 只需自定义PromptProvider 实现类即可.
1. 自定义命令提示符
- 自定义命令提示符需要注册为spring的组件, 添加@Component修饰即可
- 自定义提示符需要实现PromptProvider接口, 并实现getPrompt()方法
- 在getPrompt()方法中,我们可以指定命令提示符的文字, 字体样式, 前景色, 背景色等信息.
/**
* @Description: 自定义命令提示符样式风格
* @author: zongf
* @date: 2019-01-26 08:45
*/
@Component
public class CustomPromptProvider implements PromptProvider {
@Override
public AttributedString getPrompt() {
// 获取主机名称
String hostName = getHostName();
// 设置命令提示符文字
String promot = "spring@" + hostName + "> ";
// 设置命令提示符字体样式
AttributedStyle promotStyle = AttributedStyle.BOLD.foreground(AttributedStyle.GREEN);
// 返回命令提示符
return new AttributedString(promot, promotStyle);
}
/**
* @Description: 获取主机名称
* @return: String 主机名称
* @author: zongf
* @time: 2019-01-26 08:58:45
*/
private String getHostName(){
String hostName = "";
try {
InetAddress inetAddress = InetAddress.getLocalHost();
hostName = inetAddress.getHostName();
} catch (UnknownHostException e) {
e.printStackTrace();
}
return hostName;
}
}
2. 启动测试
重新打包后启动应用, 会发现命令提示符已变.
$ ./bin/spring-shell.sh
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.1.2.RELEASE)
2019-01-26 10:02:37.709[INFO][main]-Starting SpringShellApplication v0.0.1-SNAPSHOT on zongf-E570 with PID 23568 (/data/idea/learn-spring/spring-shell/target/spring-shell-0.0.1-SNAPSHOT.jar started by zongf in /data/idea/learn-spring/spring-shell/target)
2019-01-26 10:02:37.716[INFO][main]-No active profile set, falling back to default profiles: default
2019-01-26 10:02:39.021[INFO][main]-Started SpringShellApplication in 1.957 seconds (JVM running for 2.426)
spring@zongf-E570> add 2 3
5
spring@zongf-E570>
网友评论