优化系统启动信息

v1.4.1
Parker 5 years ago
parent 5c8fcb81c7
commit 65c188d0a1

@ -15,6 +15,8 @@
*/ */
package org.opsli.core.general; package org.opsli.core.general;
import cn.hutool.core.date.BetweenFormatter;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.lang.Console; import cn.hutool.core.lang.Console;
import cn.hutool.core.thread.ThreadUtil; import cn.hutool.core.thread.ThreadUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@ -23,6 +25,7 @@ import org.springframework.stereotype.Component;
import java.net.InetAddress; import java.net.InetAddress;
import java.net.UnknownHostException; import java.net.UnknownHostException;
import java.util.Date;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
/** /**
@ -34,23 +37,15 @@ import java.util.concurrent.TimeUnit;
@Component @Component
public class StartPrint { public class StartPrint {
/** 实例对象 */ /** 系统名称 */
public static StartPrint INSTANCE = new StartPrint(); private static String systemName;
/** 服务端口 */ /** 服务端口 */
private static String serverPort; private static String serverPort;
/** 服务根地址 */ /** 服务根地址 */
private static String serverContextPath; private static String serverContextPath;
/** 系统启动时间 */
private static Date starterDate;
@Value("${server.port:8080}")
public void setServerPort(String serverPort) {
StartPrint.serverPort = serverPort;
}
@Value("${server.servlet.context-path:/opsli-boot}")
public void setServerContextPath(String serverContextPath) {
StartPrint.serverContextPath = serverContextPath;
}
/** /**
* *
@ -62,7 +57,7 @@ public class StartPrint {
String basePath = getBasePath(); String basePath = getBasePath();
String printStr = String printStr =
"\n----------------------------------------------------------\n" + "\n----------------------------------------------------------\n" +
"OPSLI 快速开发平台 框架启动成功! 相关URLs:\n" + systemName + " 框架启动成功! 相关URLs:\n" +
"项目地址: \t\thttp://" + basePath + "/\n" + "项目地址: \t\thttp://" + basePath + "/\n" +
"Doc文档: \t\thttp://" + basePath + "/doc.html\n" + "Doc文档: \t\thttp://" + basePath + "/doc.html\n" +
"----------------------------------------------------------\n"; "----------------------------------------------------------\n";
@ -70,7 +65,7 @@ public class StartPrint {
} }
/** /**
* *
* *
*/ */
public void errorPrint(){ public void errorPrint(){
@ -78,7 +73,7 @@ public class StartPrint {
ThreadUtil.sleep(1, TimeUnit.SECONDS); ThreadUtil.sleep(1, TimeUnit.SECONDS);
String printStr = String printStr =
"\n----------------------------------------------------------\n" + "\n----------------------------------------------------------\n" +
"OPSLI 快速开发平台 框架启动失败! 请检查相关配置!\n" + systemName + " 框架启动失败! 请检查相关配置!\n" +
"----------------------------------------------------------\n"; "----------------------------------------------------------\n";
Console.log(printStr); Console.log(printStr);
} }
@ -86,7 +81,7 @@ public class StartPrint {
/** /**
* *
* @return * @return String
*/ */
public String getBasePath(){ public String getBasePath(){
String ip = "127.0.0.1"; String ip = "127.0.0.1";
@ -95,4 +90,57 @@ public class StartPrint {
}catch (UnknownHostException ignored){} }catch (UnknownHostException ignored){}
return ip + ":" + serverPort + serverContextPath; return ip + ":" + serverPort + serverContextPath;
} }
/**
*
* @return String
*/
public String getRunTime(){
//Level.MINUTE表示精确到分
return DateUtil.formatBetween(starterDate, DateUtil.date(), BetweenFormatter.Level.MINUTE);
}
// ======================
/**
*
* @return StartPrint
*/
public static StartPrint getInstance(){
return StartPrintInner.INSTANCE;
}
/**
*
*/
private static class StartPrintInner{
/** 实例对象 */
private static final StartPrint INSTANCE = new StartPrint();
}
@Value("${opsli.system-name:OPSLI快速开发平台}")
public void setSystemName(String systemName) {
StartPrint.systemName = systemName;
}
@Value("${opsli.system-starter-time}")
public void setStarterDate(Date starterDate) {
if(starterDate == null){
StartPrint.starterDate = DateUtil.date();
return;
}
StartPrint.starterDate = starterDate;
}
@Value("${server.port:8080}")
public void setServerPort(String serverPort) {
StartPrint.serverPort = serverPort;
}
@Value("${server.servlet.context-path:/opsli-boot}")
public void setServerContextPath(String serverContextPath) {
StartPrint.serverContextPath = serverContextPath;
}
} }

@ -18,7 +18,7 @@ public class ApplicationFailedEventListener implements ApplicationListener<Appli
@Override @Override
public void onApplicationEvent(ApplicationFailedEvent event) { public void onApplicationEvent(ApplicationFailedEvent event) {
StartPrint.INSTANCE.errorPrint(); StartPrint.getInstance().errorPrint();
} }
} }

@ -19,7 +19,7 @@ public class ApplicationReadyEventListener implements ApplicationListener<Applic
@Override @Override
public void onApplicationEvent(ApplicationReadyEvent event) { public void onApplicationEvent(ApplicationReadyEvent event) {
event.getApplicationContext(); event.getApplicationContext();
StartPrint.INSTANCE.successPrint(); StartPrint.getInstance().successPrint();
} }
} }

@ -194,7 +194,7 @@ public class MenuRestController extends BaseRestController<SysMenu, MenuModel, I
// 设置BASE_PATH // 设置BASE_PATH
if(StringUtils.isNotEmpty(treeNode.getUrl())){ if(StringUtils.isNotEmpty(treeNode.getUrl())){
treeNode.setUrl(treeNode.getUrl().replace("${BASE_PATH}", treeNode.setUrl(treeNode.getUrl().replace("${BASE_PATH}",
StartPrint.INSTANCE.getBasePath() StartPrint.getInstance().getBasePath()
)); ));
} }
} }

@ -158,6 +158,9 @@ mybatis-plus:
# opsli 自定义配置 # opsli 自定义配置
opsli: opsli:
system-name: "OPSLI 快速开发平台"
# token 认证 # token 认证
token-auth: token-auth:
# 排除过滤url 格式 - List # 排除过滤url 格式 - List
@ -201,3 +204,6 @@ opsli:
# Excel 最大操作数量 防止OOM # Excel 最大操作数量 防止OOM
excel-max-count: 20000 excel-max-count: 20000
# 系统启动时间 为空则默认 真实当前系统启动时间
system-starter-time: "2020-09-10 00:00:00"

Loading…
Cancel
Save