@EventListener
プロキシされたオブジェクトに条件属性を持つアノテーションを使用したい。EL 式は関数の引数を使用します。ただし、実行時に はorg.springframework.core.LocalVariableTableParameterNameDiscoverer
CGLIB で生成されたプロキシからデバッグ情報を読み取ることができないため、パラメーターにアクセスできません。その結果、私は得る
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);
}
}
引数の名前を公開するにはどうすればよいですか、またはスプリングを作成してプロキシではなく元のクラスを分析するにはどうすればよいですか?