日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

SpringBoot事件機制@EventListener的簡單使用

作者:csdn-CODER! 更新時間: 2022-07-11 編程語言

1.創建事件類

@Data
public class MyEvent{
    private String eventId;
    private String title;
    private String content;


    public MyEvent() {
        this.eventId = UUID.randomUUID().toString();
    }
}

2. 創建事件監聽類與方法

@EventListener注釋方法的所屬類必須是被Spring管理的Bean,否則事件監聽方法不會生效

// @EventListener注釋方法的所屬類必須是被Spring管理的Bean,否則事件監聽方法不會生效
@Component
public class MyListener {

    @Async
    @Order(Ordered.HIGHEST_PRECEDENCE)
    @EventListener(MyEvent.class)
    public void myEventHandler(MyEvent event) {
        // 處理事件的方法塊
        System.out.println("接收到了MyEvent事件,開始處理...");
        System.out.println(event.toString());
        System.out.println("事件處理完畢!");
    }
}

3. 發布事件

@Service
public class MyService {

    @Resource
    private ApplicationEventPublisher publisher;


    public String service() {
        System.out.println("開始處理服務請求...");
        String status = "START";
        publisher.publishEvent(new MyEvent());
        System.out.println("服務處理完畢!");
        return "OK";
    }
}

4. 測試

public static void main(String[] args) {
    ApplicationContext ctx = SpringApplication.run(UserCenterApplication.class, args);
    MyService service = ctx.getBean(MyService.class);
    service.service();
}

測試結果:

開始處理服務請求...
接收到了MyEvent事件,開始處理...
MyEvent(eventId=6ec5d9eb-f33e-4198-a774-73d0c8c5cc4d, title=null, content=null)
事件處理完畢!
服務處理完畢!

原文鏈接:https://blog.csdn.net/a272265225/article/details/122923827

欄目分類
最近更新