2016-07-18 3 views
0

Я пытался использовать весенний eventLisnter в spring-boot 1.3.5.RELEASE.Как вернуть результат от 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 
    } 
} 
+0

Нет, это плохой способ делать вещи. Чего вы на самом деле пытаетесь достичь? – OrangeDog

+0

@OrangeDog Я пытаюсь получить свой сохраненный идентификатор orderBean в Service и сохранить его в других beans/tables. –

+0

Нет, что вы * на самом деле * пытаетесь достичь. – OrangeDog

ответ

0

Как обсуждалось с OrangeDog по комментариям. полезно использовать сервис, а затем отправлять сообщения.
или может использовать сервис ServiceLocatorFactoryBean для получения пользовательского обслуживания.

Смежные вопросы