是否可以打开此注释
@RabbitListener(
bindings = [QueueBinding(
key = [Amqp.FOLEY_NEW],
value = Queue(Amqp.FOLEY_NEW),
exchange = Exchange(name = "amq.topic", type = ExchangeTypes.TOPIC )
)]
)
进入自定义批注,该批注仅将队列名称作为参数?
可以尝试,但是我看不到可以引用Listener.value
@Target(AnnotationTarget.FUNCTION)
@Retention
@RabbitListener(
bindings = [QueueBinding(
key = [Amqp.FOLEY_NEW],
value = Queue(Amqp.FOLEY_NEW),
exchange = Exchange(name = "amq.topic", type = ExchangeTypes.TOPIC )
)]
)
annotation class Listener( val value: String )
答案 0 :(得分:0)
这行不通,因为自定义注释必须以某种方式引用元注释。 @RabbitListener
没有value()
属性。尽管您可以尝试使用@AliasFor
。有关更多信息,请参见其JavaDocs。
不过,我不确定您的目标是什么。您用一些@RabbitListener
声明一个bindings
,其结果将在目标侦听器容器中使用。即使您能够使用queues()
来完成设计,也将在容器中使用所有其他队列(例如,通过@AliasFor
)。那是您期望的吗?