This commit is contained in:
@@ -5,21 +5,17 @@
|
|||||||
*/
|
*/
|
||||||
package org.redkale.boot;
|
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.lang.reflect.*;
|
||||||
import java.net.InetSocketAddress;
|
import java.net.InetSocketAddress;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.logging.*;
|
import java.util.logging.Level;
|
||||||
import javax.annotation.*;
|
import javax.annotation.Resource;
|
||||||
|
import org.redkale.boot.ClassFilter.FilterEntry;
|
||||||
import org.redkale.net.*;
|
import org.redkale.net.*;
|
||||||
import org.redkale.net.http.*;
|
import org.redkale.net.http.*;
|
||||||
import org.redkale.net.sncp.*;
|
import org.redkale.net.sncp.Sncp;
|
||||||
import org.redkale.service.*;
|
import org.redkale.service.*;
|
||||||
|
import org.redkale.util.AnyValue.DefaultAnyValue;
|
||||||
import org.redkale.util.*;
|
import org.redkale.util.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -68,7 +64,7 @@ public final class NodeHttpServer extends NodeServer {
|
|||||||
private void initWebSocketService() {
|
private void initWebSocketService() {
|
||||||
final NodeServer self = this;
|
final NodeServer self = this;
|
||||||
final ResourceFactory regFactory = application.getResourceFactory();
|
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 {
|
try {
|
||||||
if (field.getAnnotation(Resource.class) == null) return;
|
if (field.getAnnotation(Resource.class) == null) return;
|
||||||
if (!(src instanceof WebSocketServlet)) return;
|
if (!(src instanceof WebSocketServlet)) return;
|
||||||
@@ -85,7 +81,7 @@ public final class NodeHttpServer extends NodeServer {
|
|||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
logger.log(Level.SEVERE, "WebSocketNode inject error", e);
|
logger.log(Level.SEVERE, "WebSocketNode inject error", e);
|
||||||
}
|
}
|
||||||
});
|
}, WebSocketNode.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void loadHttpServlet(final AnyValue conf, final ClassFilter<? extends Servlet> filter) throws Exception {
|
protected void loadHttpServlet(final AnyValue conf, final ClassFilter<? extends Servlet> filter) throws Exception {
|
||||||
|
|||||||
@@ -160,7 +160,7 @@ public abstract class NodeServer {
|
|||||||
final NodeServer self = this;
|
final NodeServer self = this;
|
||||||
//---------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------
|
||||||
final ResourceFactory appResFactory = application.getResourceFactory();
|
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 {
|
try {
|
||||||
if (field.getAnnotation(Resource.class) == null) return;
|
if (field.getAnnotation(Resource.class) == null) return;
|
||||||
if ((src instanceof Service) && Sncp.isRemote((Service) src)) return; //远程模式不得注入 DataSource
|
if ((src instanceof Service) && Sncp.isRemote((Service) src)) return; //远程模式不得注入 DataSource
|
||||||
@@ -203,8 +203,8 @@ public abstract class NodeServer {
|
|||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
logger.log(Level.SEVERE, "DataSource inject error", e);
|
logger.log(Level.SEVERE, "DataSource inject error", e);
|
||||||
}
|
}
|
||||||
});
|
},DataSource.class);
|
||||||
resourceFactory.add(CacheSource.class, (ResourceFactory rf, final Object src, final String resourceName, Field field, final Object attachment) -> {
|
resourceFactory.register((ResourceFactory rf, final Object src, final String resourceName, Field field, final Object attachment) -> {
|
||||||
try {
|
try {
|
||||||
if (field.getAnnotation(Resource.class) == null) return;
|
if (field.getAnnotation(Resource.class) == null) return;
|
||||||
if ((src instanceof Service) && Sncp.isRemote((Service) src)) return; //远程模式不得注入 CacheSource
|
if ((src instanceof Service) && Sncp.isRemote((Service) src)) return; //远程模式不得注入 CacheSource
|
||||||
@@ -252,7 +252,7 @@ public abstract class NodeServer {
|
|||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
logger.log(Level.SEVERE, "DataSource inject error", e);
|
logger.log(Level.SEVERE, "DataSource inject error", e);
|
||||||
}
|
}
|
||||||
});
|
},CacheSource.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
|
|||||||
@@ -69,11 +69,18 @@ public final class ResourceFactory {
|
|||||||
return (A) register(autoSync, "", rs);
|
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;
|
if (clazz == null || rs == null) return;
|
||||||
loadermap.put(clazz, rs);
|
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) {
|
public void register(final String name, final boolean value) {
|
||||||
register(true, name, boolean.class, value);
|
register(true, name, boolean.class, value);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user