diff --git a/src/main/java/org/redkale/annotation/Resource.java b/src/main/java/org/redkale/annotation/Resource.java index 7751a8023..df46d0b9c 100644 --- a/src/main/java/org/redkale/annotation/Resource.java +++ b/src/main/java/org/redkale/annotation/Resource.java @@ -20,6 +20,12 @@ import java.lang.annotation.*; @Retention(RetentionPolicy.RUNTIME) public @interface Resource { + public static final String PARENT_NAME = "$"; + + public static final String SELF_NAME = "@name"; + + public static final String SELF_TYPE = "@type"; + /** * 是否必须存在 * diff --git a/src/main/java/org/redkale/service/AbstractService.java b/src/main/java/org/redkale/service/AbstractService.java index f692cb47f..9a7e88ad2 100644 --- a/src/main/java/org/redkale/service/AbstractService.java +++ b/src/main/java/org/redkale/service/AbstractService.java @@ -9,7 +9,6 @@ import java.util.concurrent.*; import org.redkale.annotation.Resource; import org.redkale.boot.Application; import org.redkale.net.WorkThread; -import org.redkale.util.ResourceFactory; /** * @@ -21,10 +20,10 @@ public abstract class AbstractService implements Service { @Resource(name = Application.RESNAME_APP_EXECUTOR, required = false) private ExecutorService workExecutor; - @Resource(name = ResourceFactory.RESOURCE_SELF_NAME, required = false) + @Resource(name = Resource.SELF_NAME, required = false) private String serviceName; - @Resource(name = ResourceFactory.RESOURCE_SELF_TYPE, required = false) + @Resource(name = Resource.SELF_TYPE, required = false) private Class serviceType; protected String serviceName() { diff --git a/src/main/java/org/redkale/util/ResourceFactory.java b/src/main/java/org/redkale/util/ResourceFactory.java index f3983fbe8..8ea435b74 100644 --- a/src/main/java/org/redkale/util/ResourceFactory.java +++ b/src/main/java/org/redkale/util/ResourceFactory.java @@ -40,12 +40,6 @@ import org.redkale.convert.*; @SuppressWarnings("unchecked") public final class ResourceFactory { - public static final String RESOURCE_PARENT_NAME = "$"; - - public static final String RESOURCE_SELF_NAME = "@name"; - - public static final String RESOURCE_SELF_TYPE = "@type"; - private static final Logger logger = Logger.getLogger(ResourceFactory.class.getSimpleName()); private final ReentrantLock lock = new ReentrantLock(); @@ -575,19 +569,19 @@ public final class ResourceFactory { if (rc == null) { continue; } - if (!rc.name().equals(RESOURCE_SELF_NAME) && !rc.name().equals(RESOURCE_SELF_TYPE)) { + if (!rc.name().equals(Resource.SELF_NAME) && !rc.name().equals(Resource.SELF_TYPE)) { continue; } final Class classType = field.getType(); RedkaleClassLoader.putReflectionField(cname, field); try { - if (rc.name().equals(RESOURCE_SELF_NAME)) { + if (rc.name().equals(Resource.SELF_NAME)) { if (classType != String.class) { throw new ResourceInjectException("resource(type=" + c.getSimpleName() + ".class, field=" + field.getName() + ", name='" + rc.name() + "') must be String "); } field.setAccessible(true); field.set(val, name); - } else if (rc.name().equals(RESOURCE_SELF_TYPE)) { + } else if (rc.name().equals(Resource.SELF_TYPE)) { if (classType != Type.class && classType != Class.class) { throw new ResourceInjectException("resource(type=" + c.getSimpleName() + ".class, field=" + field.getName() + ", name='" + rc.name() + "') must be Type or Class "); } @@ -792,13 +786,13 @@ public final class ResourceFactory { } int pos = name.indexOf("{system.property."); if (pos < 0) { - return (name.contains(RESOURCE_PARENT_NAME) && parent != null) ? name.replace(RESOURCE_PARENT_NAME, parent) : name; + return (name.contains(Resource.PARENT_NAME) && parent != null) ? name.replace(Resource.PARENT_NAME, parent) : name; } String prefix = name.substring(0, pos); String subName = name.substring(pos + "{system.property.".length()); pos = subName.lastIndexOf('}'); if (pos < 0) { - return (name.contains(RESOURCE_PARENT_NAME) && parent != null) ? name.replace(RESOURCE_PARENT_NAME, parent) : name; + return (name.contains(Resource.PARENT_NAME) && parent != null) ? name.replace(Resource.PARENT_NAME, parent) : name; } String postfix = subName.substring(pos + 1); String property = subName.substring(0, pos); @@ -883,10 +877,10 @@ public final class ResourceFactory { consumer.accept(srcObj, field); } String tname = rc1 == null ? rc2.name() : rc1.name(); - if (tname.equals(RESOURCE_SELF_NAME) || tname.equals(RESOURCE_SELF_TYPE)) { + if (tname.equals(Resource.SELF_NAME) || tname.equals(Resource.SELF_TYPE)) { continue; } - if (tname.contains(RESOURCE_PARENT_NAME)) { + if (tname.contains(Resource.PARENT_NAME)) { Resource res1 = srcObj.getClass().getAnnotation(Resource.class); javax.annotation.Resource res2 = srcObj.getClass().getAnnotation(javax.annotation.Resource.class); String presname = res1 == null ? (res2 == null ? srcResourceName : res2.name()) : res1.name(); @@ -894,13 +888,13 @@ public final class ResourceFactory { if (srcObj instanceof Resourcable) { String oname = ((Resourcable) srcObj).resourceName(); if (oname != null) { - tname = tname.replace(RESOURCE_PARENT_NAME, oname); + tname = tname.replace(Resource.PARENT_NAME, oname); } } else { logger.log(Level.SEVERE, srcObj.getClass().getName() + " not found @Resource on Class or not implements Resourcable"); } } else { - tname = tname.replace(RESOURCE_PARENT_NAME, presname); + tname = tname.replace(Resource.PARENT_NAME, presname); } }