diff --git a/pom.xml b/pom.xml
index 04bc851..5671212 100644
--- a/pom.xml
+++ b/pom.xml
@@ -10,7 +10,7 @@
net.javase.hk
hk-sup-spring-boot-starter
- 0.0.3
+ 0.0.4
hk-sup-spring-boot-starter
hk-sup-spring-boot-starter
diff --git a/src/main/java/net/javase/hksup/starter/service/CmsServer.java b/src/main/java/net/javase/hksup/starter/service/CmsServer.java
index 2546cc2..27ad3ff 100644
--- a/src/main/java/net/javase/hksup/starter/service/CmsServer.java
+++ b/src/main/java/net/javase/hksup/starter/service/CmsServer.java
@@ -36,13 +36,13 @@ public class CmsServer {
private HCISUPCMS.DEVICE_REGISTER_CB deviceRegisterCb;
HCISUPCMS.NET_EHOME_CMS_LISTEN_PARAM struCMSListenPara = new HCISUPCMS.NET_EHOME_CMS_LISTEN_PARAM();
- private Runnable preStartCallback = null;
- private Runnable stopCallback = null;
+ private CmsServerCallback callback = null;
public CmsServer(HkSupSdkProperties supSdkProperties, ApplicationContext applicationContext) {
this.supSdkProperties = supSdkProperties;
this.applicationContext = applicationContext;
createSDKInstance();
+ callback = applicationContext.getBeansOfType(CmsServerCallback.class).values().stream().findAny().orElse(null);
}
/**
@@ -160,28 +160,16 @@ public class CmsServer {
*/
void startCmsServer() {
try {
- Optional.ofNullable(preStartCallback).ifPresent(Runnable::run);
+ Optional opt = Optional.ofNullable(callback);
+ opt.ifPresent(CmsServerCallback::preStart);
cmsInit();
startCmsListen();
+ opt.ifPresent(CmsServerCallback::finishStart);
} catch (Exception ex) {
log.error("启动CMS注册服务失败: " + ex.getMessage(), ex);
}
}
- /**
- * 初始化服务 前置回调
- */
- public void preStartCallback(Runnable callback) {
- this.preStartCallback = callback;
- }
-
- /**
- * 设置停止服务后回调
- */
- public void stopCallback(Runnable callback) {
- this.stopCallback = callback;
- }
-
/**
* 停止CMS服务,回收资源
*/
@@ -192,7 +180,7 @@ public class CmsServer {
hcisupcms.NET_ECMS_StopListen(CmsHandle);
hcisupcms.NET_ECMS_Fini();
log.info("停止CMS注册服务成功!");
- Optional.ofNullable(stopCallback).ifPresent(Runnable::run);
+ Optional.ofNullable(callback).ifPresent(CmsServerCallback::finishStop);
}
} catch (Exception ex) {
log.error("停止CMS注册服务失败: " + ex.getMessage(), ex);
diff --git a/src/main/java/net/javase/hksup/starter/service/CmsServerCallback.java b/src/main/java/net/javase/hksup/starter/service/CmsServerCallback.java
new file mode 100644
index 0000000..f83d959
--- /dev/null
+++ b/src/main/java/net/javase/hksup/starter/service/CmsServerCallback.java
@@ -0,0 +1,16 @@
+package net.javase.hksup.starter.service;
+
+/**
+ * CmsServerCallback
+ *
+ * @author Frank
+ */
+public interface CmsServerCallback {
+
+ void preStart();
+
+ void finishStart();
+
+ void finishStop();
+
+}