Jadual Kandungan
Pelaksanaan model publish-subscribe event dalam Spring Framework
Rumah Java javaTutorial Bagaimanakah model publish-subscribe acara dilaksanakan dalam Rangka Kerja Spring?

Bagaimanakah model publish-subscribe acara dilaksanakan dalam Rangka Kerja Spring?

Apr 17, 2024 pm 01:03 PM
peristiwa terbitkan-langgan

Model publish-subscribe acara dalam Spring Framework ialah corak reka bentuk yang membolehkan objek berkomunikasi dengan menerbitkan dan melanggan acara tanpa rujukan langsung. Penerbit menerbitkan acara, manakala pelanggan menerima dan memproses acara. Spring menyediakan model acara luar biasa berdasarkan antara muka Java.util.EventListener dan java.util.EventObject. Acara penerbitan dicapai melalui antara muka ApplicationEventPublisher dan melanggan acara dicapai dengan melaksanakan antara muka ApplicationListener dan menggunakan anotasi @EventListener. Dalam amalan, model publish-subscribe acara boleh digunakan untuk mencapai komunikasi yang dipisahkan tanpa menggandingkan komponen aplikasi secara langsung, seperti menghantar pemberitahuan e-mel selepas pengguna dibuat.

Spring Framework 中的事件发布-订阅模型是如何实现的?

Pelaksanaan model publish-subscribe event dalam Spring Framework

Pengenalan kepada konsep

Model publish-subscribe event ialah corak reka bentuk yang membolehkan objek berkomunikasi antara satu sama lain tanpa rujukan langsung. Dalam contoh, penerbit menerbitkan acara, dan pelanggan menerima dan memproses acara ini.

Model acara dalam Spring

Spring Framework menyediakan model publish-subscribe acara luar biasa, yang berdasarkan java.util.EventListener dan java Java. gunakan antara muka .EventObject. java.util.EventListenerjava.util.EventObject 接口。

事件发布

事件发布由 ApplicationEventPublisher 接口完成。它允许发布者通过调用 publishEvent() 方法发布事件。

代码示例:发布事件

// 事件定义
class MyEvent extends ApplicationEvent {
    public MyEvent(Object source) {
        super(source);
    }
}

// 发布器
ApplicationEventPublisher publisher = ...;
publisher.publishEvent(new MyEvent(this));
Salin selepas log masuk

事件订阅

订阅者通过实现 ApplicationListener 接口并使用 @EventListener 注解来订阅事件。

代码示例:订阅事件

// 订阅者类
public class MyEventListener implements ApplicationListener<MyEvent> {
    @Override
    public void onApplicationEvent(MyEvent event) {
        // 处理事件
    }
}

// 使用 @EventListener 注解订阅
@Component
public class EventListenerRegistrar {
    @EventListener
    public void handleEvent(MyEvent event) {
        // 处理事件
    }
}
Salin selepas log masuk

实战案例

考虑一个示例应用中,需要在创建用户后发送电子邮件通知。为此,可以创建 CreateUserEvent 事件并向其添加 sendEmail()

Penerbitan acara

Penerbitan acara diselesaikan dengan antara muka ApplicationEventPublisher. Ia membenarkan penerbit menerbitkan acara dengan memanggil kaedah publishEvent().

🎜Contoh Kod: Penerbitan Acara🎜🎜
// 事件定义
class CreateUserEvent extends ApplicationEvent {
    // ... 其他代码
    
    public void sendEmail() {
        // 发送电子邮件
    }
}

// 发布器
void onCreateUser(User user) {
    // ... 其他代码
    
    publisher.publishEvent(new CreateUserEvent(user));
}

// 订阅者
@EventListener
public void handleEvent(CreateUserEvent event) {
    event.sendEmail();
}
Salin selepas log masuk
🎜🎜Langganan Acara🎜🎜🎜Pelanggan melanggan acara dengan melaksanakan antara muka ApplicationListener dan menggunakan @EventListener. 🎜🎜🎜Contoh Kod: Melanggan Acara🎜🎜rrreee🎜🎜Kes Praktikal🎜🎜🎜Pertimbangkan contoh aplikasi yang perlu menghantar pemberitahuan e-mel selepas pengguna dibuat. Untuk melakukan ini, buat acara CreateUserEvent dan tambahkan kaedah sendEmail() padanya. 🎜🎜🎜Contoh Kod: Contoh Praktikal🎜🎜rrreee🎜Dengan cara ini, model publish-subscribe acara Spring menyediakan cara yang fleksibel dan boleh diperluaskan untuk membolehkan komponen aplikasi kami berkomunikasi antara satu sama lain tanpa digandingkan secara langsung. 🎜

Atas ialah kandungan terperinci Bagaimanakah model publish-subscribe acara dilaksanakan dalam Rangka Kerja Spring?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Repo: Cara menghidupkan semula rakan sepasukan
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

ID Peristiwa 4660: Objek dipadamkan [Betulkan] ID Peristiwa 4660: Objek dipadamkan [Betulkan] Jul 03, 2023 am 08:13 AM

Sesetengah pembaca kami menemui ID4660 acara. Mereka sering tidak pasti apa yang perlu dilakukan, jadi kami menerangkannya dalam panduan ini. ID Peristiwa 4660 biasanya dilog apabila objek dipadamkan, jadi kami juga akan meneroka beberapa cara praktikal untuk membetulkannya pada komputer anda. Apakah acara ID4660? ID Peristiwa 4660 berkaitan dengan objek dalam Direktori Aktif dan akan dicetuskan oleh mana-mana faktor berikut: Pemadaman Objek – Peristiwa keselamatan dengan ID Peristiwa 4660 direkodkan apabila objek dipadamkan daripada Direktori Aktif. Perubahan manual – ID Peristiwa 4660 mungkin dijana apabila pengguna atau pentadbir menukar kebenaran objek secara manual. Ini boleh berlaku apabila menukar tetapan kebenaran, mengubah suai tahap akses atau menambah atau mengalih keluar orang atau kumpulan

Dapatkan acara kalendar akan datang pada skrin kunci iPhone anda Dapatkan acara kalendar akan datang pada skrin kunci iPhone anda Dec 01, 2023 pm 02:21 PM

Pada iPhone yang menjalankan iOS 16 atau lebih baru, anda boleh memaparkan acara kalendar akan datang terus pada skrin kunci. Baca terus untuk mengetahui cara ia dilakukan. Terima kasih kepada komplikasi muka jam tangan, ramai pengguna Apple Watch sudah terbiasa melihat pergelangan tangan mereka untuk melihat acara kalendar yang akan datang. Dengan kemunculan iOS16 dan widget skrin kunci, anda boleh melihat maklumat acara kalendar yang sama terus pada iPhone anda tanpa membuka kunci peranti. Widget Skrin Kunci Kalendar datang dalam dua perisa, membolehkan anda menjejaki masa acara akan datang yang seterusnya, atau menggunakan widget yang lebih besar yang memaparkan nama acara dan masanya. Untuk mula menambah widget, buka kunci iPhone anda menggunakan Face ID atau Touch ID, tekan dan tahan

Dalam JavaScript, apakah tujuan acara 'oninput'? Dalam JavaScript, apakah tujuan acara 'oninput'? Aug 26, 2023 pm 03:17 PM

Apabila nilai ditambah pada kotak input, peristiwa oninput berlaku. Anda boleh cuba menjalankan kod berikut untuk memahami cara melaksanakan acara oninput dalam JavaScript - Contoh<!DOCTYPEhtml><html> <body> <p>Tulis di bawah:</p> <inputtype="text&quot

Bagaimana untuk melaksanakan fungsi kalendar dan peringatan acara dalam projek PHP? Bagaimana untuk melaksanakan fungsi kalendar dan peringatan acara dalam projek PHP? Nov 02, 2023 pm 12:48 PM

Bagaimana untuk melaksanakan fungsi kalendar dan peringatan acara dalam projek PHP? Fungsi kalendar dan peringatan acara adalah salah satu keperluan biasa semasa membangunkan aplikasi web. Sama ada pengurusan jadual peribadi, kerjasama pasukan atau penjadualan acara dalam talian, fungsi kalendar boleh menyediakan pengurusan masa dan pengaturan transaksi yang mudah. Melaksanakan fungsi kalendar dan peringatan acara dalam projek PHP boleh diselesaikan melalui langkah berikut. Reka bentuk pangkalan data Pertama, anda perlu mereka bentuk jadual pangkalan data untuk menyimpan maklumat tentang acara kalendar. Reka bentuk ringkas boleh mengandungi medan berikut: id: unik untuk acara tersebut

Bagaimana untuk melaksanakan pengikatan peristiwa perubahan bagi elemen terpilih dalam jQuery Bagaimana untuk melaksanakan pengikatan peristiwa perubahan bagi elemen terpilih dalam jQuery Feb 23, 2024 pm 01:12 PM

jQuery ialah perpustakaan JavaScript popular yang boleh digunakan untuk memudahkan manipulasi DOM, pengendalian acara, kesan animasi, dll. Dalam pembangunan web, kami sering menghadapi situasi di mana kami perlu menukar pengikatan acara pada elemen terpilih. Artikel ini akan memperkenalkan cara menggunakan jQuery untuk mengikat acara perubahan elemen terpilih, dan memberikan contoh kod khusus. Pertama, kita perlu mencipta menu lungsur dengan pilihan menggunakan label:

Apakah peristiwa yang biasa digunakan dalam jquery Apakah peristiwa yang biasa digunakan dalam jquery Jan 03, 2023 pm 06:13 PM

Peristiwa yang biasa digunakan dalam jquery ialah: 1. Peristiwa tetingkap; 2. Peristiwa tetikus, yang merupakan peristiwa yang dijana apabila pengguna menggerakkan atau mengklik tetikus pada dokumen, termasuk klik tetikus, peristiwa pindah masuk, peristiwa pindah keluar, dsb.; 3. Acara papan kekunci, Peristiwa dijana setiap kali pengguna menekan atau melepaskan kekunci pada papan kekunci, termasuk peristiwa penekan kekunci, peristiwa pelepasan kekunci, dsb. peristiwa akan dicetuskan, dan apabila ia kehilangan fokus, peristiwa blur() dicetuskan dan peristiwa submit() dicetuskan apabila borang diserahkan.

Penjelasan terperinci tentang peristiwa mengikat kotak input dalam dokumen Vue Penjelasan terperinci tentang peristiwa mengikat kotak input dalam dokumen Vue Jun 21, 2023 am 08:12 AM

Vue.js ialah rangka kerja JavaScript ringan yang mudah digunakan, cekap dan fleksibel Ia merupakan salah satu rangka kerja bahagian hadapan yang paling popular pada masa ini. Dalam Vue.js, peristiwa mengikat kotak input adalah keperluan yang sangat biasa Artikel ini akan memperkenalkan peristiwa mengikat kotak input dalam dokumen Vue secara terperinci. 1. Konsep asas Dalam Vue.js, peristiwa pengikatan kotak input merujuk kepada pengikatan nilai kotak input kepada objek data bagi contoh Vue, dengan itu mencapai pengikatan dua hala input dan respons. Dalam Vue.j

Menyelam Dalam Acara Butang Tutup dalam jQuery Menyelam Dalam Acara Butang Tutup dalam jQuery Feb 24, 2024 pm 05:09 PM

Pemahaman mendalam tentang peristiwa butang tutup dalam jQuery Semasa proses pembangunan bahagian hadapan, kita sering menghadapi situasi di mana kita perlu melaksanakan fungsi butang tutup, seperti menutup tetingkap pop timbul, menutup kotak gesaan, dsb. Apabila menggunakan jQuery, perpustakaan JavaScript yang popular, ia menjadi sangat mudah dan mudah untuk melaksanakan acara butang tutup. Artikel ini akan menyelidiki cara menggunakan jQuery untuk melaksanakan acara butang tutup, dan menyediakan contoh kod khusus untuk membantu pembaca memahami dan menguasai teknologi ini dengan lebih baik. Pertama, kita perlu memahami bagaimana untuk menentukan

See all articles