diff --git a/src/org/redkale/boot/NodeServer.java b/src/org/redkale/boot/NodeServer.java index 9129b8ee0..edfce14e6 100644 --- a/src/org/redkale/boot/NodeServer.java +++ b/src/org/redkale/boot/NodeServer.java @@ -282,7 +282,7 @@ public abstract class NodeServer { || (this.sncpGroup == null && entry.isEmptyGroups()) //空的SNCP配置 || type.getAnnotation(LocalService.class) != null;//本地模式 if (localed && (type.isInterface() || Modifier.isAbstract(type.getModifiers()))) continue; //本地模式不能实例化接口和抽象类的Service类 - final Consumer runner = (ResourceFactory rf) -> { + final BiConsumer runner = (ResourceFactory rf, Boolean needinject) -> { try { Service service; if (localed) { //本地模式 @@ -296,7 +296,7 @@ public abstract class NodeServer { for (final Class restype : wrapper.getTypes()) { if (resourceFactory.find(wrapper.getName(), restype) == null) { regFactory.register(wrapper.getName(), restype, wrapper.getService()); - rf.inject(wrapper.getService()); //动态加载的Service也存在按需加载的注入资源 + if (needinject) rf.inject(wrapper.getService()); //动态加载的Service也存在按需加载的注入资源 } else if (isSNCP() && !entry.isAutoload()) { throw new RuntimeException(ServiceWrapper.class.getSimpleName() + "(class:" + type.getName() + ", name:" + entry.getName() + ", group:" + groups + ") is repeat."); } @@ -316,13 +316,13 @@ public abstract class NodeServer { }; if (entry.isExpect()) { ResourceFactory.ResourceLoader resourceLoader = (ResourceFactory rf, final Object src, final String resourceName, Field field, final Object attachment) -> { - runner.accept(rf); + runner.accept(rf, true); }; for (final Class restype : ServiceWrapper.parseTypes(entry.getType())) { resourceFactory.register(resourceLoader, restype); } } else { - runner.accept(resourceFactory); + runner.accept(resourceFactory, false); } }