Ich habe versucht, spring's eventLisnter in spring-boot 1.3.5.RELEASE zu verwenden.
Ich habe mich gefragt, ob es eine Standardmethode gibt, um gespeicherte Objekte zurückzugeben oder weitere Informationen zurückzugeben, nachdem das Ereignis verarbeitet wurde.
Ich kann event als Container verwenden, um mein gespeichertes Objekt zurückzusetzen, aber ich bin mir nicht sicher, ob dies die beste Vorgehensweise ist. Jeder Rat wird geschätzt :)
Hier ist das Beispiel:
public class StoreOrderEvent extends ApplicationEvent {
private OrderBean orderBean;
/**
* Create a new ApplicationEvent.
*
* @param source the object on which the event initially occurred (never {@code null})
*/
public StoreOrderEvent (Object source, OrderBean orderBean) {
super(source);
this.orderBean = orderBean;
}
public OrderBean getOrderBean() {
return this.orderBean;
}
}
@Component
public class OrderEventListener{
@Autowired
private OrderRepository orderRepository;
@Order(5000)
@TransactionalEventListener
public void processStoreOrderEvent(StoreOrderEvent event) {
OrderBean orderbean = orderRepository.save(event.getOrderBean());
// return orderBean
}
}
@Service
public class OrderService{
@Autowired
private ApplicationContext applicationContext;
public OrderBean storeOrder(OrderVO vo) {
vo -> orderBean;
applicationContext.publishEvent(new StoreOrderEvent(this, orderBean));
// get my saved orderBean
}
}
Wie mit OrangeDog über Kommentare besprochen. Es ist gut, den Service zu nutzen und dann die Veranstaltung zu veröffentlichen.
oder Verwenden Sie möglicherweise service und ServiceLocatorFactoryBean, um einen benutzerdefinierten Service abzurufen.
Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.
Bei Verstößen wenden Sie sich bitte [email protected] Löschen.
Lass mich ein paar Worte sagen