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

🧠 ΠŸΡ€ΠΎΡΡ‚ΠΎΠ΅ ускорСниС @Transactional ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Π² Spring Boot

🧠 ΠŸΡ€ΠΎΡΡ‚ΠΎΠ΅ ускорСниС @Transactional ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Π² Spring Boot Π—Π½Π°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ @Transactional ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΎΠ±ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Π΅Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π² прокси? Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚: - Π’Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ Π²Ρ‹Π·ΠΎΠ²Ρ‹ Π² Ρ‚ΠΎΠΌ ΠΆΠ΅ классС Π½Π΅ проходят Ρ‡Π΅Ρ€Π΅Π· Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΡŽ; - ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ‚Π°ΠΊΠΎΠΉ прокси β€” это AOP-магия, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΠΎΠΉΡ‚ΠΈ Ρ€Π°Π΄ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. πŸ“Œ Если Π²Ρ‹ Ρ‚ΠΎΡ‡Π½ΠΎ Π·Π½Π°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ·Π²Π½Π΅, ΠΈ Π²Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½Π° прокси-ΠΎΠ±Ρ‘Ρ€Ρ‚ΠΊΠ° β€” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ @Transactional Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ интСрфСйса ΠΈ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ interface-based proxy. @Configuration @EnableTransactionManagement(proxyTargetClass = false) // JDK proxy public class TransactionConfig { } public interface UserService { @Transactional void createUser(User user); } πŸ“‰ Π­Ρ‚ΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ сниТаСт overhead, особСнно Π² высоконагруТСнных сСрвисах, Π³Π΄Π΅ сотни тысяч Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² @Transactional-ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ². πŸ’‘ ΠŸΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚, Ссли: - Π£ вас слоистая Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°; - Π’Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ Π½ΡƒΠΆΠ½Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ снаруТи; - Π’Ρ‹ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Π²Ρ‹Π·ΠΎΠ²Ρ‹ this.someMethod() Π²Π½ΡƒΡ‚Ρ€ΠΈ сСрвиса. ⚠️ НС Π·Π°Π±Ρ‹Π²Π°ΠΉΡ‚Π΅: - JDK Proxy Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с интСрфСйсами; - Если Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ класса β€” прокси Π½Π΅ сработаСт (ΠΈ транзакция Π½Π΅ начнётся). πŸ“Š ΠŸΡ€ΠΎΡ„ΠΈΠ»ΡŒΡ‚Π΅. Иногда Π·Π°ΠΌΠ΅Π½Π° proxyTargetClass = true Π½Π° false Π΄Π°Ρ‘Ρ‚ +3-5% ΠΊ throughput. πŸ‘‰ @BookJava

511 просмотров

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

1Β 614 подписчиков Β· IT ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ

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

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

Π•Ρ‰Ρ‘ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅ Β«IT ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈΒ»

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

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