Reactor 2を使用するSpring 4アプリケーションは、次のもので開始できません。
***************************
APPLICATION FAILED TO START
***************************
Description:
The bean 'orderHandlerConsumer' could not be injected as a 'fm.data.repository.OrderHandlerConsumer' because it is a JDK dynamic proxy that implements:
reactor.fn.Consumer
Action:
Consider injecting the bean as one of its interfaces or forcing the use of CGLib-based proxies by setting proxyTargetClass=true on @EnableAsync and/or @EnableCaching.
OrderHandlerConsumer
は本当にシンプルです:
@Service
@Order(Ordered.HIGHEST_PRECEDENCE)
public class OrderHandlerConsumer implements Consumer<Event<OrderEnvelope>> {
@Override
public void accept(Event<OrderEnvelope> event) {
event.getData().getLatch().countDown();
}
}
何がうまくいかないのでしょうか?
Bean名をOrderHandlerConsumerクラスに割り当てて、Autowireの解決がより簡単になるようにすることができます。さらに、具象クラスで自動配線する代わりに、インターフェースで自動配線してみてください。 @Serviceアノテーションを次のように変更できるように、
@Service(value="orderHandlerConsumer")
インターフェイスタイプでAutowireを試行します。
@Autowire
reactor.fn.Consumer orderHandlerConsumer;
以下の自動配線をお試しください
class Test{
@Autowired
private Consume orderHandlerConsumer;
}