[SPRING] 외부 조건을 가진 spring eventListener
SPRING외부 조건을 가진 spring eventListener
내 코드 전체에 여러 EventListeners에 대한 FooEvents에 대한 유연한 필터가 필요합니다. @EventListener (condition = "event.enabled")를 사용할 수는 있지만 필자의 필터는 fooEvent의 여러 속성을 분석해야합니다.
내 응용 프로그램 컨텍스트에서 Predicate-Bean을 사용할 수 있기를 바랬습니다.
@Component
public class FooPredicate implements Predicate<FooEvent> {
public boolean test(FooEvent event) {...}
}
...
@EventListener(condition="${fooPredicate.test(event)}")
public void handle(FooEvent event) { ... }
그러나 나는 얻는다 :
org.springframework.expression.spel.SpelEvaluationException: EL1011E:
Method call: Attempted to call method
test(org.springframework.context.PayloadApplicationEvent) on null
context object
EventListerns에 대해 외부의 복잡한 조건을 사용할 수 있습니까? 아니면 복잡한 조건을 가진 글로벌 리스너를 정의하고 전체 조건을 반복하지 않고 동작을 상속합니까?
해결법
-
==============================
1.fooPredicate는 bean으로 해석하기 위해 '#'대신 '@'를 사용해야하는 스프링 빈이므로 잘못된 정의를 사용하고 있습니다. 10.5.13 빈 참조를 참조하십시오.
fooPredicate는 bean으로 해석하기 위해 '#'대신 '@'를 사용해야하는 스프링 빈이므로 잘못된 정의를 사용하고 있습니다. 10.5.13 빈 참조를 참조하십시오.
@EventListener(condition="@fooPredicate.test(#event)") public void handle(FooEvent event) { System.out.println(); }
from https://stackoverflow.com/questions/45123796/spring-eventlistener-with-external-condition by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] Spring / JTA / JPA 유닛 테스트 : 롤백이 작동하지 않습니다. (0) | 2019.04.22 |
---|---|
[SPRING] Spring webflux : http를 https로 리디렉션합니다. (0) | 2019.04.22 |
[SPRING] java.sql.SQLException : 열을 찾을 수 없습니다. (0) | 2019.04.22 |
[SPRING] 정적 메소드와의 트랜잭션 (0) | 2019.04.22 |
[SPRING] 메서드에 대한 쿼리 메타 모델을 만들지 못했습니다. public abstract java.util.Optional (0) | 2019.04.22 |