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

πŸ’‘ НС Π΄Π΅Π»Π°ΠΉ этого Π² @PostConstruct β€” особСнно Π² ΠΏΡ€ΠΎΠ΄Π΅

πŸ’‘ НС Π΄Π΅Π»Π°ΠΉ этого Π² @PostConstruct β€” особСнно Π² ΠΏΡ€ΠΎΠ΄Π΅ БСйчас расскаТу, ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²Π°ΠΆΠ½ΡƒΡŽ бизнСс-Π»ΠΎΠ³ΠΈΠΊΡƒ Π² @PostConstruct β€” плохая идСя. Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€: @Component public class CacheLoader { private final SomeService service; public CacheLoader(SomeService service) { this.service = service; } @PostConstruct public void init() { service.loadDataIntoCache(); // ⚠️ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ Π‘Π” } } 🧨 ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ°: @PostConstruct вызываСтся Π΄ΠΎ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ поднялось. Если Π²Π½ΡƒΡ‚Ρ€ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ошибка (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π‘Π” нСдоступна) β€” ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠΏΠ°ΡΡ‚ΡŒ, ΠΈΠ»ΠΈ Ρ‡Ρ‚ΠΎ Ρ…ΡƒΠΆΠ΅ β€” Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒΡΡ Π² ΠΏΠΎΠ»ΡƒΡ€Π°Π±ΠΎΡ‡Π΅ΠΌ состоянии. πŸ“Œ ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ: * ❌ НСт контроля Π½Π°Π΄ порядком выполнСния Ρ‚Π°ΠΊΠΈΡ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²; * ❌ НСльзя Π»Π΅Π³ΠΊΠΎ ΠΏΠ΅Ρ€Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ эту Π»ΠΎΠ³ΠΈΠΊΡƒ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ кСш); * ❌ Π’ тСстах ΠΈΠ»ΠΈ dev-срСдС β€” Ρ‚Π°ΠΊΠΈΠ΅ Π²Ρ‹Π·ΠΎΠ²Ρ‹ часто ΠΌΠ΅ΡˆΠ°ΡŽΡ‚. βœ… Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ β€” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ApplicationListener: @Component public class CacheLoader implements ApplicationListener<ApplicationReadyEvent> { private final SomeService service; @Override public void onApplicationEvent(ApplicationReadyEvent event) { service.loadDataIntoCache(); // πŸ‘ вызываСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послС старта } } πŸ“Œ ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π° β€” аннотация @EventListener: @EventListener(ApplicationReadyEvent.class) public void onReady() { // бСзопасно Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌ Π΄Π°Π½Π½Ρ‹Π΅ } πŸ“¦ Π’ Spring Boot это Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ ΠΈ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ способ выполнСния ΠΊΠΎΠ΄Π° послС старта. 🧠 РСзюмС: πŸ”Ή @PostConstruct β€” Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для простой ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π±ΠΈΠ½ΠΎΠ². πŸ”Ή БизнСс-Π»ΠΎΠ³ΠΈΠΊΡƒ ΠΈ I/O β€” Π² @EventListener(ApplicationReadyEvent.class). πŸ‘‰ @BookJava

496 просмотров

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

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

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

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

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

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

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