From 8834f575822e98e580ce4aa21795cdd497ea8cd2 Mon Sep 17 00:00:00 2001 From: Redkale <8730487+redkale@users.noreply.github.com> Date: Sat, 16 May 2020 17:22:52 +0800 Subject: [PATCH] --- src/org/redkale/boot/NodeServer.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/org/redkale/boot/NodeServer.java b/src/org/redkale/boot/NodeServer.java index 730b0b6d2..73dc2ba9d 100644 --- a/src/org/redkale/boot/NodeServer.java +++ b/src/org/redkale/boot/NodeServer.java @@ -489,6 +489,7 @@ public abstract class NodeServer { localServices.clear(); localServices.addAll(swlist); //this.loadPersistData(); + preInitServices(localServices, remoteServices); final List slist = sb == null ? null : new CopyOnWriteArrayList<>(); localServices.stream().forEach(y -> { long s = System.currentTimeMillis(); @@ -502,7 +503,7 @@ public abstract class NodeServer { for (String s : wlist) { sb.append(s); } - sb.append(threadName).append("All Services load cost " + (System.currentTimeMillis() - starts) + " ms" + LINE_SEPARATOR); + sb.append(threadName).append("All Services load cost ").append(System.currentTimeMillis() - starts).append(" ms" + LINE_SEPARATOR); } if (sb != null && sb.length() > 0) logger.log(Level.INFO, sb.toString()); } @@ -512,6 +513,14 @@ public abstract class NodeServer { maxClassNameLength = Math.max(maxClassNameLength, Sncp.getResourceType(y).getName().length() + 1); } + //Service.init执行之前调用 + protected void preInitServices(Set localServices, Set remoteServices) { + } + + //Service.destroy执行之前调用 + protected void preDestroyServices(Set localServices, Set remoteServices) { + } + protected abstract ClassFilter createFilterClassFilter(); protected abstract ClassFilter createServletClassFilter(); @@ -645,6 +654,7 @@ public abstract class NodeServer { if (interceptor != null) interceptor.preShutdown(this); final StringBuilder sb = logger.isLoggable(Level.INFO) ? new StringBuilder() : null; final boolean finest = logger.isLoggable(Level.FINEST); + preDestroyServices(localServices, remoteServices); localServices.forEach(y -> { long s = System.currentTimeMillis(); if (finest) logger.finest(y + " is destroying");