diff --git a/src/org/redkale/boot/NodeHttpServer.java b/src/org/redkale/boot/NodeHttpServer.java index f81af74c9..10c9f44b7 100644 --- a/src/org/redkale/boot/NodeHttpServer.java +++ b/src/org/redkale/boot/NodeHttpServer.java @@ -5,21 +5,17 @@ */ package org.redkale.boot; -import org.redkale.net.http.WebServlet; -import org.redkale.net.http.HttpServer; -import org.redkale.net.http.HttpServlet; -import org.redkale.util.AnyValue; -import org.redkale.boot.ClassFilter.FilterEntry; -import org.redkale.util.AnyValue.DefaultAnyValue; import java.lang.reflect.*; import java.net.InetSocketAddress; import java.util.*; -import java.util.logging.*; -import javax.annotation.*; +import java.util.logging.Level; +import javax.annotation.Resource; +import org.redkale.boot.ClassFilter.FilterEntry; import org.redkale.net.*; import org.redkale.net.http.*; -import org.redkale.net.sncp.*; +import org.redkale.net.sncp.Sncp; import org.redkale.service.*; +import org.redkale.util.AnyValue.DefaultAnyValue; import org.redkale.util.*; /** @@ -68,7 +64,7 @@ public final class NodeHttpServer extends NodeServer { private void initWebSocketService() { final NodeServer self = this; final ResourceFactory regFactory = application.getResourceFactory(); - resourceFactory.add(WebSocketNode.class, (ResourceFactory rf, final Object src, final String resourceName, Field field, Object attachment) -> { //主要用于单点的服务 + resourceFactory.register((ResourceFactory rf, final Object src, final String resourceName, Field field, Object attachment) -> { //主要用于单点的服务 try { if (field.getAnnotation(Resource.class) == null) return; if (!(src instanceof WebSocketServlet)) return; @@ -85,7 +81,7 @@ public final class NodeHttpServer extends NodeServer { } catch (Exception e) { logger.log(Level.SEVERE, "WebSocketNode inject error", e); } - }); + }, WebSocketNode.class); } protected void loadHttpServlet(final AnyValue conf, final ClassFilter filter) throws Exception { diff --git a/src/org/redkale/boot/NodeServer.java b/src/org/redkale/boot/NodeServer.java index 600d1f517..3235c2453 100644 --- a/src/org/redkale/boot/NodeServer.java +++ b/src/org/redkale/boot/NodeServer.java @@ -160,7 +160,7 @@ public abstract class NodeServer { final NodeServer self = this; //--------------------------------------------------------------------------------------------- final ResourceFactory appResFactory = application.getResourceFactory(); - resourceFactory.add(DataSource.class, (ResourceFactory rf, final Object src, String resourceName, Field field, final Object attachment) -> { + resourceFactory.register((ResourceFactory rf, final Object src, String resourceName, Field field, final Object attachment) -> { try { if (field.getAnnotation(Resource.class) == null) return; if ((src instanceof Service) && Sncp.isRemote((Service) src)) return; //远程模式不得注入 DataSource @@ -203,8 +203,8 @@ public abstract class NodeServer { } catch (Exception e) { logger.log(Level.SEVERE, "DataSource inject error", e); } - }); - resourceFactory.add(CacheSource.class, (ResourceFactory rf, final Object src, final String resourceName, Field field, final Object attachment) -> { + },DataSource.class); + resourceFactory.register((ResourceFactory rf, final Object src, final String resourceName, Field field, final Object attachment) -> { try { if (field.getAnnotation(Resource.class) == null) return; if ((src instanceof Service) && Sncp.isRemote((Service) src)) return; //远程模式不得注入 CacheSource @@ -252,7 +252,7 @@ public abstract class NodeServer { } catch (Exception e) { logger.log(Level.SEVERE, "DataSource inject error", e); } - }); + },CacheSource.class); } @SuppressWarnings("unchecked") diff --git a/src/org/redkale/util/ResourceFactory.java b/src/org/redkale/util/ResourceFactory.java index 404230f38..7ae1cde27 100644 --- a/src/org/redkale/util/ResourceFactory.java +++ b/src/org/redkale/util/ResourceFactory.java @@ -69,11 +69,18 @@ public final class ResourceFactory { return (A) register(autoSync, "", rs); } - public void add(final Type clazz, final ResourceLoader rs) { + public void register(final Type clazz, final ResourceLoader rs) { if (clazz == null || rs == null) return; loadermap.put(clazz, rs); } + public void register(final ResourceLoader rs, final Type... clazzs) { + if (clazzs == null || rs == null) return; + for (Type clazz : clazzs) { + loadermap.put(clazz, rs); + } + } + public void register(final String name, final boolean value) { register(true, name, boolean.class, value); }