提交 9dfd3468 作者: 方治民

refactor: 新增 UptimeConfig 来在项目启动时分析 domain 配置

上级 74370269
server: #server:
address: 127.0.0.1 # address: 127.0.0.1
# Sentry # Sentry
sentry: sentry:
...@@ -45,3 +45,7 @@ management: ...@@ -45,3 +45,7 @@ management:
enabled: true enabled: true
os: os:
enabled: true enabled: true
# Uptime Kuma 服务地址
uptime:
domain: https://uptime.yiring.com
...@@ -12,6 +12,7 @@ dependencies { ...@@ -12,6 +12,7 @@ dependencies {
// hutool-extra // hutool-extra
implementation "cn.hutool:hutool-extra:${hutoolVersion}" implementation "cn.hutool:hutool-extra:${hutoolVersion}"
implementation "cn.hutool:hutool-http:${hutoolVersion}"
// fastjson // fastjson
implementation "com.alibaba.fastjson2:fastjson2:${fastJsonVersion}" implementation "com.alibaba.fastjson2:fastjson2:${fastJsonVersion}"
......
/* (C) 2023 YiRing, Inc. */ /* (C) 2023 YiRing, Inc. */
package com.yiring.common.annotation; package com.yiring.common.annotation;
import com.yiring.common.util.Uptime; import com.yiring.common.utils.Uptime;
import java.lang.annotation.ElementType; import java.lang.annotation.ElementType;
import java.lang.annotation.Retention; import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy; import java.lang.annotation.RetentionPolicy;
......
...@@ -7,7 +7,7 @@ import com.yiring.common.annotation.UptimePush; ...@@ -7,7 +7,7 @@ import com.yiring.common.annotation.UptimePush;
import com.yiring.common.core.Redis; import com.yiring.common.core.Redis;
import com.yiring.common.core.UptimeNotice; import com.yiring.common.core.UptimeNotice;
import com.yiring.common.exception.UptimeException; import com.yiring.common.exception.UptimeException;
import com.yiring.common.util.Uptime; import com.yiring.common.utils.Uptime;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
......
/* (C) 2024 YiRing, Inc. */
package com.yiring.common.config;
import cn.hutool.core.util.StrUtil;
import jakarta.annotation.PostConstruct;
import lombok.AccessLevel;
import lombok.Data;
import lombok.experimental.FieldDefaults;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.annotation.Order;
/**
* @author Jim
*/
@Slf4j
@Data
@FieldDefaults(level = AccessLevel.PRIVATE)
@Order(99999999)
@Configuration
@ConfigurationProperties(prefix = "uptime")
public class UptimeConfig {
/**
* Uptime 服务域名
*/
String domain;
@PostConstruct
public void init() {
String defaultUptimeDomain = "https://uptime.yiring.com";
if (StrUtil.isBlank(domain)) {
domain = defaultUptimeDomain;
log.info(
"[Uptime Config] No `uptime.domain` configuration detected, using default domain: {}",
defaultUptimeDomain
);
} else {
log.info("[Uptime Config] Uptime domain: {}", domain);
}
}
}
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
package com.yiring.common.core; package com.yiring.common.core;
import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude;
import com.yiring.common.util.Uptime; import com.yiring.common.utils.Uptime;
import java.io.Serial; import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import lombok.AccessLevel; import lombok.AccessLevel;
......
/* (C) 2024 YiRing, Inc. */ /* (C) 2024 YiRing, Inc. */
package com.yiring.common.util; package com.yiring.common.utils;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import cn.hutool.extra.spring.SpringUtil; import cn.hutool.extra.spring.SpringUtil;
import cn.hutool.http.HttpUtil; import cn.hutool.http.HttpUtil;
import com.yiring.common.config.UptimeConfig;
import java.util.Objects; import java.util.Objects;
import lombok.Getter; import lombok.Getter;
import lombok.experimental.UtilityClass; import lombok.experimental.UtilityClass;
...@@ -20,18 +21,8 @@ public class Uptime { ...@@ -20,18 +21,8 @@ public class Uptime {
static String UPTIME_DOMAIN; static String UPTIME_DOMAIN;
static { static {
String defaultUptimeDomain = "https://uptime.yiring.com"; UptimeConfig config = SpringUtil.getBean(UptimeConfig.class);
UPTIME_DOMAIN = config.getDomain();
String domain = SpringUtil.getProperty("uptime.domain");
if (StrUtil.isBlank(domain)) {
domain = defaultUptimeDomain;
log.warn(
"[Uptime Config] No `uptime.domain` configuration detected, using default domain: {}",
defaultUptimeDomain
);
}
UPTIME_DOMAIN = domain;
} }
/** /**
......
...@@ -12,6 +12,5 @@ dependencies { ...@@ -12,6 +12,5 @@ dependencies {
// hutool // hutool
implementation "cn.hutool:hutool-core:${hutoolVersion}" implementation "cn.hutool:hutool-core:${hutoolVersion}"
implementation "cn.hutool:hutool-http:${hutoolVersion}"
implementation "cn.hutool:hutool-extra:${hutoolVersion}" implementation "cn.hutool:hutool-extra:${hutoolVersion}"
} }
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论