Mon application Spring 4, qui utilise Reactor 2, ne démarre pas avec:
***************************
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
est vraiment simple:
@Service
@Order(Ordered.HIGHEST_PRECEDENCE)
public class OrderHandlerConsumer implements Consumer<Event<OrderEnvelope>> {
@Override
public void accept(Event<OrderEnvelope> event) {
event.getData().getLatch().countDown();
}
}
Des idées qui pourraient mal tourner?
Vous pouvez attribuer un nom de bean à votre classe OrderHandlerConsumer afin que la résolution Autowire soit plus facile. De plus, au lieu de câblage automatique avec la classe concrète, essayez de câbler automatiquement avec l'interface. Pour que vous puissiez remplacer l'annotation @Service par,
@Service(value="orderHandlerConsumer")
et essayez d'Autowire avec le type d'interface,
@Autowire
reactor.fn.Consumer orderHandlerConsumer;
Veuillez essayer le câblage automatique comme ci-dessous
class Test{
@Autowired
private Consume orderHandlerConsumer;
}