diff --git a/src/main/java/org/redkale/boot/Application.java b/src/main/java/org/redkale/boot/Application.java index 849640e8b..9ac74894e 100644 --- a/src/main/java/org/redkale/boot/Application.java +++ b/src/main/java/org/redkale/boot/Application.java @@ -1178,6 +1178,9 @@ public final class Application { throw new RestException("@" + ResourceProducer.class.getSimpleName() + " must on " + MessageProducer.class.getName() + " type field, but on " + field); } MessageAgent agent = findMessageAgent(annotation.mq()); + if (!annotation.required() && agent == null) { + return; + } if (agent == null) { throw new RedkaleException("Not found " + MessageAgent.class.getSimpleName() + "(name = " + annotation.mq() + ") on " + field); } diff --git a/src/main/java/org/redkale/mq/ResourceProducer.java b/src/main/java/org/redkale/mq/ResourceProducer.java index d6c207b86..fdf789079 100644 --- a/src/main/java/org/redkale/mq/ResourceProducer.java +++ b/src/main/java/org/redkale/mq/ResourceProducer.java @@ -3,9 +3,9 @@ */ package org.redkale.mq; +import java.lang.annotation.*; import static java.lang.annotation.ElementType.FIELD; import static java.lang.annotation.RetentionPolicy.RUNTIME; -import java.lang.annotation.*; import org.redkale.convert.ConvertType; /** @@ -25,6 +25,8 @@ public @interface ResourceProducer { String mq(); + boolean required() default true; + ConvertType convertType() default ConvertType.JSON; - + }