ΠŸΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ содСрТимому
ΠœΠ°ΠΊΡΠΈΠΌΠ΅Ρ‚Π΅Ρ€

🧠 Π’Ρ€ΡŽΠΊ с @EventListener Π² Spring β€” ΡƒΠ±ΠΈΡ€Π°Π΅ΠΌ лишний @TransactionalEventListener

🧠 Π’Ρ€ΡŽΠΊ с @EventListener Π² Spring β€” ΡƒΠ±ΠΈΡ€Π°Π΅ΠΌ лишний @TransactionalEventListener Когда Ρ‚Π΅Π±Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ события Π² Ρ€Π°ΠΌΠΊΠ°Ρ… Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ, ΠΌΡ‹ часто пишСм: @TransactionalEventListener public void handleEvent(MyEvent event) { // ... } ⚠️ Но Π΅ΡΡ‚ΡŒ нюанс: @TransactionalEventListener ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ срабатываСт послС ΠΊΠΎΠΌΠΌΠΈΡ‚Π°. Иногда это Π½Π΅ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Π±Π°Π³ΠΈ, особСнно Ссли оТидаСшь, Ρ‡Ρ‚ΠΎ событиС обработаСтся Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ. πŸ“Œ ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π°: ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ @EventListener, Π½ΠΎ вмСстС с TransactionSynchronizationManager. πŸ’‘ Π‘Π½ΠΈΠΏΠΏΠ΅Ρ‚: @Component public class MyEventHandler { @EventListener public void handle(MyEvent event) { if (TransactionSynchronizationManager.isActualTransactionActive()) { TransactionSynchronizationManager.registerSynchronization( new TransactionSynchronizationAdapter() { @Override public void afterCommit() { // ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° события послС ΠΊΠΎΠΌΠΌΠΈΡ‚Π° } } ); } else { // fallback: Π½Π΅Ρ‚ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ β€” выполняСм сразу } } } πŸ“Ž ΠŸΠ»ΡŽΡΡ‹: β€” Π›ΡƒΡ‡ΡˆΠ΅ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ: Ρ‚Ρ‹ сам Ρ€Π΅ΡˆΠ°Π΅ΡˆΡŒ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ (Π΄ΠΎ/послС/Π²Π½Π΅ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ) β€” МоТно Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Ρ‡Π΅Ρ€Π΅Π· utility-ΠΌΠ΅Ρ‚ΠΎΠ΄ β€” Π“ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ: Π»ΠΎΠ³ΠΈΠΊΠ° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π΅ зависит ΠΎΡ‚ Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΉ Spring'Π° ⚠️ ΠœΠΈΠ½ΡƒΡ: Ρ‡ΡƒΡ‚ΡŒ большС ΠΊΠΎΠ΄Π°, Π½ΠΎ понятнСС ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅. πŸ‘‰ @BookJava

521 просмотров

Канал Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ ΠœΠ°ΠΊΡΠΈΠΌΠ΅Ρ‚Π΅Ρ€Π°

1Β 609 подписчиков Β· Наука

Π”Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΊΠ°Π½Π°Π»Π°

ΠŸΠΎΠΏΡƒΠ»ΡΡ€Π½Ρ‹Π΅ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΊΠ°Π½Π°Π»Π°

Π•Ρ‰Ρ‘ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅ «Наука»

Π§ΠΈΡ‚Π°Ρ‚ΡŒ дальшС

Π”Π²Π° Ρ€Π°Π·Π° Π² нСдСлю свСТиС посты этого ΠΊΠ°Π½Π°Π»Π° β€” Π½Π° ΠΏΠΎΡ‡Ρ‚Ρƒ ΠΈ Π² Π»ΠΈΡ‡Π½ΡƒΡŽ Π»Π΅Π½Ρ‚Ρƒ. Π‘Π΅Π· ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ поиска ΠΊΠ°Π½Π°Π»Π° Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ.