This commit is contained in:
RedKale
2016-04-08 17:45:45 +08:00
parent 45afb89e5a
commit c4434f04c3
3 changed files with 19 additions and 16 deletions

View File

@@ -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<? extends Servlet> filter) throws Exception {

View File

@@ -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")

View File

@@ -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);
}