0

@EventListenerプロキシされたオブジェクトに条件属性を持つアノテーションを使用したい。EL 式は関数の引数を使用します。ただし、実行時に はorg.springframework.core.LocalVariableTableParameterNameDiscovererCGLIB で生成されたプロキシからデバッグ情報を読み取ることができないため、パラメーターにアクセスできません。その結果、私は得る

org.springframework.expression.spel.SpelEvaluationException: EL1007E:(pos 92): プロパティまたはフィールド 'prop' が null で見つかりません

class InterestedInEvent {

    @EventListener(classes = SomeEvent.class, condition="#event.prop!=null")
    @CacheEvict(cacheNames = CACHE_FOR_SOMETHING, allEntries = true)
    public void onEvent(SomeEvent event) {
        logger.debug("Chache {} has been cleaned, event={}", CACHE_FOR_SOMETHING, event);
    }

}

引数の名前を公開するにはどうすればよいですか、またはスプリングを作成してプロキシではなく元のクラスを分析するにはどうすればよいですか?

4

1 に答える 1

0

同様の問題があり、#root.eventの代わりに#eventを使用して回避策を見つけました。

于 2015-10-07T09:49:46.460 に答える