2017-10-13 10 views
1

나는 다른 모듈을 통해 내 코드의 여러 위치에 붙여 넣기 한 청취자가 @RabbitListener(id="example", queues={"a", "b"})입니다. 나는 같은 별칭을 만들고 싶었 :Spring RabbitListener 별칭을 만들 수 있습니까?

@Target({ ElementType.TYPE, ElementType.METHOD, ElementType.ANNOTATION_TYPE }) 
@Retention(RetentionPolicy.RUNTIME) 
@MessageMapping 
@Documented 
public @interface MyRabbitListener { 

    @AliasFor(annotation = RabbitListener.class) 
    String id() default "example"; 

    @AliasFor(annotation = RabbitListener.class) 
    String containerFactory() default ""; 

    @AliasFor(annotation = RabbitListener.class) 
    String[] queues() default {"a", "b"}; 

    @AliasFor(annotation = RabbitListener.class) 
    boolean exclusive() default false; 

    @AliasFor(annotation = RabbitListener.class) 
    String priority() default ""; 

    @AliasFor(annotation = RabbitListener.class) 
    String admin() default ""; 

    @AliasFor(annotation = RabbitListener.class) 
    QueueBinding[] bindings() default {}; 

    @AliasFor(annotation = RabbitListener.class) 
    String group() default ""; 
} 

그리고 난 그저 내 방법에 @MyRabbitListener를 사용하지만 spring-amqp 모듈에 대한 별칭 지원이 아직없는 생각 때문에 작동하지 않습니다. 별칭을 등록 할 수있는 방법이 있습니까?

답변

0

방금 ​​실수로 실수로 별칭을 만들지 못했다는 것을 깨달았습니다. 다음과 같이 표시되어야합니다.

@Target({ ElementType.TYPE, ElementType.METHOD, ElementType.ANNOTATION_TYPE }) 
@Retention(RetentionPolicy.RUNTIME) 
@MessageMapping 
@Documented 
@RabbitListener(id = "example", queues = {"a", "b"}) 
public @interface MyRabbitListener { 

    @AliasFor(annotation = RabbitListener.class) 
    String containerFactory() default ""; 

    @AliasFor(annotation = RabbitListener.class) 
    boolean exclusive() default false; 

    @AliasFor(annotation = RabbitListener.class) 
    String priority() default ""; 

    @AliasFor(annotation = RabbitListener.class) 
    String admin() default ""; 

    @AliasFor(annotation = RabbitListener.class) 
    QueueBinding[] bindings() default {}; 

    @AliasFor(annotation = RabbitListener.class) 
    String group() default ""; 
}