diff --git a/hippo4j-core/src/main/java/cn/hippo4j/core/config/BootstrapPropertiesInterface.java b/hippo4j-core/src/main/java/cn/hippo4j/core/config/BootstrapPropertiesInterface.java
index ee1bc235..e468d07d 100644
--- a/hippo4j-core/src/main/java/cn/hippo4j/core/config/BootstrapPropertiesInterface.java
+++ b/hippo4j-core/src/main/java/cn/hippo4j/core/config/BootstrapPropertiesInterface.java
@@ -13,41 +13,62 @@ public interface BootstrapPropertiesInterface {
*
* @return
*/
- Boolean getEnable();
+ default Boolean getEnable() {
+ return null;
+ }
/**
* Get username.
*
* @return
*/
- String getUsername();
+ default String getUsername() {
+ return null;
+ }
/**
* Get password.
*
* @return
*/
- String getPassword();
+ default String getPassword() {
+ return null;
+ }
/**
* Get namespace.
*
* @return
*/
- String getNamespace();
+ default String getNamespace() {
+ return null;
+ }
/**
* Get item id.
*
* @return
*/
- String getItemId();
+ default String getItemId() {
+ return null;
+ }
/**
* Get server addr.
*
* @return
*/
- String getServerAddr();
+ default String getServerAddr() {
+ return null;
+ }
+
+ /**
+ * Get banner.
+ *
+ * @return
+ */
+ default Boolean getBanner() {
+ return null;
+ }
}
diff --git a/hippo4j-core/src/main/java/cn/hippo4j/core/enable/BeforeCheckConfiguration.java b/hippo4j-core/src/main/java/cn/hippo4j/core/enable/BeforeCheckConfiguration.java
index f269ffe0..865e4593 100644
--- a/hippo4j-core/src/main/java/cn/hippo4j/core/enable/BeforeCheckConfiguration.java
+++ b/hippo4j-core/src/main/java/cn/hippo4j/core/enable/BeforeCheckConfiguration.java
@@ -9,6 +9,8 @@ import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.env.ConfigurableEnvironment;
+import java.util.Objects;
+
/**
* Before check configuration.
*
@@ -19,10 +21,13 @@ import org.springframework.core.env.ConfigurableEnvironment;
@AllArgsConstructor
public class BeforeCheckConfiguration {
+ private final String bootstrapPropertiesClassName = "cn.hippo4j.starter.config.BootstrapProperties";
+
@Bean
public BeforeCheckConfiguration.BeforeCheck dynamicThreadPoolBeforeCheckBean(@Autowired(required = false) BootstrapPropertiesInterface properties,
ConfigurableEnvironment environment) {
- if (properties != null && properties.getEnable()) {
+ boolean checkFlag = properties != null && Objects.equals(bootstrapPropertiesClassName, properties.getClass().getName()) && properties.getEnable();
+ if (checkFlag) {
String username = properties.getUsername();
if (StringUtil.isBlank(username)) {
throw new ConfigEmptyException(
diff --git a/hippo4j-spring-boot/hippo4j-spring-boot-starter/src/main/java/cn/hippo4j/starter/handler/DynamicThreadPoolBannerHandler.java b/hippo4j-core/src/main/java/cn/hippo4j/core/handler/DynamicThreadPoolBannerHandler.java
similarity index 91%
rename from hippo4j-spring-boot/hippo4j-spring-boot-starter/src/main/java/cn/hippo4j/starter/handler/DynamicThreadPoolBannerHandler.java
rename to hippo4j-core/src/main/java/cn/hippo4j/core/handler/DynamicThreadPoolBannerHandler.java
index 818ff602..99a90fed 100644
--- a/hippo4j-spring-boot/hippo4j-spring-boot-starter/src/main/java/cn/hippo4j/starter/handler/DynamicThreadPoolBannerHandler.java
+++ b/hippo4j-core/src/main/java/cn/hippo4j/core/handler/DynamicThreadPoolBannerHandler.java
@@ -1,6 +1,6 @@
-package cn.hippo4j.starter.handler;
+package cn.hippo4j.core.handler;
-import cn.hippo4j.starter.config.BootstrapProperties;
+import cn.hippo4j.core.config.BootstrapPropertiesInterface;
import lombok.NonNull;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@@ -20,7 +20,7 @@ import org.springframework.boot.ansi.AnsiStyle;
public class DynamicThreadPoolBannerHandler implements InitializingBean {
@NonNull
- private final BootstrapProperties properties;
+ private final BootstrapPropertiesInterface properties;
private final String DYNAMIC_THREAD_POOL = " :: Dynamic ThreadPool :: ";
@@ -42,7 +42,7 @@ public class DynamicThreadPoolBannerHandler implements InitializingBean {
"|___/ \\_, |_||_\\__,_|_|_|_|_\\__| |_| |_| \n" +
" |__/ \n";
- if (properties.getEnableBanner()) {
+ if (properties.getBanner()) {
String version = getVersion();
version = (version != null) ? " (v" + version + ")" : "no version.";
diff --git a/hippo4j-spring-boot/hippo4j-core-spring-boot-starter/pom.xml b/hippo4j-spring-boot/hippo4j-core-spring-boot-starter/pom.xml
index 58f70c86..d5a37689 100644
--- a/hippo4j-spring-boot/hippo4j-core-spring-boot-starter/pom.xml
+++ b/hippo4j-spring-boot/hippo4j-core-spring-boot-starter/pom.xml
@@ -63,6 +63,11 @@
true
+
+ org.springframework.boot
+ spring-boot-configuration-processor
+ true
+
diff --git a/hippo4j-spring-boot/hippo4j-core-spring-boot-starter/src/main/java/cn/hippo4j/core/starter/config/BootstrapCoreProperties.java b/hippo4j-spring-boot/hippo4j-core-spring-boot-starter/src/main/java/cn/hippo4j/core/starter/config/BootstrapCoreProperties.java
index 2076a075..9cceccb5 100644
--- a/hippo4j-spring-boot/hippo4j-core-spring-boot-starter/src/main/java/cn/hippo4j/core/starter/config/BootstrapCoreProperties.java
+++ b/hippo4j-spring-boot/hippo4j-core-spring-boot-starter/src/main/java/cn/hippo4j/core/starter/config/BootstrapCoreProperties.java
@@ -1,5 +1,6 @@
package cn.hippo4j.core.starter.config;
+import cn.hippo4j.core.config.BootstrapPropertiesInterface;
import cn.hippo4j.core.starter.parser.ConfigFileTypeEnum;
import lombok.Getter;
import lombok.Setter;
@@ -17,19 +18,19 @@ import java.util.Map;
@Getter
@Setter
@ConfigurationProperties(prefix = BootstrapCoreProperties.PREFIX)
-public class BootstrapCoreProperties {
+public class BootstrapCoreProperties implements BootstrapPropertiesInterface {
public static final String PREFIX = "spring.dynamic.thread-pool";
/**
* Enabled banner.
*/
- private Boolean enableBanner;
+ private Boolean banner;
/***
* Enabled collect.
*/
- private Boolean enabledCollect;
+ private Boolean collect;
/**
* Check state interval.
@@ -46,6 +47,11 @@ public class BootstrapCoreProperties {
*/
private Map nacos;
+ /**
+ * Apollo config.
+ */
+ private Map apollo;
+
/**
* Notify platforms.
*/
diff --git a/hippo4j-spring-boot/hippo4j-core-spring-boot-starter/src/main/java/cn/hippo4j/core/starter/parser/ConfigParser.java b/hippo4j-spring-boot/hippo4j-core-spring-boot-starter/src/main/java/cn/hippo4j/core/starter/parser/ConfigParser.java
index b692e6ca..d71ac82f 100644
--- a/hippo4j-spring-boot/hippo4j-core-spring-boot-starter/src/main/java/cn/hippo4j/core/starter/parser/ConfigParser.java
+++ b/hippo4j-spring-boot/hippo4j-core-spring-boot-starter/src/main/java/cn/hippo4j/core/starter/parser/ConfigParser.java
@@ -15,6 +15,6 @@ public interface ConfigParser {
Map