0
私はspring-boot 1.3.5.RELEASEでspringのeventLisnterを使用しようとしていました。私はspirngEventListenerから結果を返すには
保存されたオブジェクトを戻す標準的な方法があるか、イベントの処理後にさらに情報を返すかどうかは疑問でした。
私は戻って私の保存されたオブジェクトを設定するためのコンテナとしてイベントを使用するかもしれないが、私はこれがベストプラクティスであるならば、何かアドバイスが理解されるであろう:)
ここで確認していない例である:
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
}
}
いいえ、これはやり方が悪い方法です。実際に何を達成しようとしていますか? – OrangeDog
@OrangeDog私は、保存されたオーダービーンのIDをServiceで取得し、他のBean /テーブルに保存しようとしています。 –
いいえ、あなたは*実際に*達成しようとしていますか? – OrangeDog