0
是否可以在Spring Boot中使用事件?我需要執行一個方法,但不等待返回。我試圖用這個:Spring Boot中的事件
public class GerarSeloEvent extends ApplicationEvent {
private TbPedido pedido;
private Integer cdCartorio;
public GerarSeloEvent(Object source, TbPedido pedido, Integer cdCartorio) {
super(source);
this.pedido = pedido;
this.cdCartorio = cdCartorio;
}
public TbPedido getPedido() {
return pedido;
}
public Integer getCdCartorio() {
return cdCartorio;
}
}
@Component
public class GerarSeloListener implements ApplicationListener<GerarSeloEvent> {
@Autowired
SeloService seloService;
@Override
public void onApplicationEvent(GerarSeloEvent event) {
seloService.gerarSelos(event.getPedido(), event.getCdCartorio());
}
}
和我的電話
GerarSeloEvent gerarSelos = new GerarSeloEvent(this, pedido, cdCartorio);
EnviarEmailPedidoEvent enviarEmail = new EnviarEmailPedidoEvent(this, pedido);
publisher.publishEvent(gerarSelos);
但我的代碼等待返回任何東西到我的前端。我需要一個異步事件。
不知道你如何構建你的代碼,理想情況下,應以在異步模式下做任何事情異步但仍然可以工作「穿」是最常見的可用選項。嘗試一下。 – Avis
Springs應用程序事件在默認情況下是同步的,否則您可以配置它。一種方法是簡單地在你的監聽器的'onApplicationEvent'上放置'@ ASync'來使它成爲異步(或你的服務方法)。否則不要使用事件並簡單地創建您要調用的異步服務方法。 –