This commit is contained in:
Redkale
2016-07-23 10:28:13 +08:00
parent 593ed3e7e0
commit 7e26ddddd5

View File

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