Java Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° | Spring Boot Backend & Architecture. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° ΠΠΆΠ°Π²Π° Π΄Π»Ρ Developer. IT Π‘ΠΎΠ±Π΅ΡΠ΅Π΄ΠΎΠ²Π°Π½ΠΈΡ, ΠΠ»Π³ΠΎΡΠΈΡΠΌΡ ΠΈ Coding Π·Π°Π΄Π°ΡΠΈ. Π£ΡΠΎΠΊΠΈ ΠΈ ΠΊΡΡΡΡ Π΄Π»Ρ ΡΠΎΡΡΠ° Π² Tech.
ΠΠ°ΡΠΊΠ° Β· 11 ΠΈΡΠ»Ρ 2026 Π³.
π§ ThreadLocal β ΡΠΊΡΡΡΠ°Ρ ΡΠ³ΡΠΎΠ·Π° ΡΡΠ΅ΡΠ΅ΠΊ ΠΏΠ°ΠΌΡΡΠΈ
π§ ThreadLocal β ΡΠΊΡΡΡΠ°Ρ ΡΠ³ΡΠΎΠ·Π° ΡΡΠ΅ΡΠ΅ΠΊ ΠΏΠ°ΠΌΡΡΠΈ ThreadLocal β ΡΠ΄ΠΎΠ±Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± Ρ ΡΠ°Π½ΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅, ΠΏΡΠΈΠ²ΡΠ·Π°Π½Π½ΡΠ΅ ΠΊ ΠΏΠΎΡΠΎΠΊΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ SimpleDateFormat ΠΈΠ»ΠΈ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π² ΡΠ°ΠΌΠΊΠ°Ρ Π·Π°ΠΏΡΠΎΡΠ°. ΠΠΎ Ρ Π½ΠΈΠΌ Π»Π΅Π³ΠΊΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΡΠ΅ΡΠΊΡ ΠΏΠ°ΠΌΡΡΠΈ, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π² thread pool'Π°Ρ . π ΠΠΎΡΠ΅ΠΌΡ? ThreadLocal-Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ (Thread.threadLocals) ΠΆΠΈΠ²ΡΡ ΡΡΠΎΠ»ΡΠΊΠΎ ΠΆΠ΅, ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠΎΠΊ. Π ΠΏΠΎΡΠΎΠΊΠΈ ΠΈΠ· ΠΏΡΠ»ΠΎΠ² ΠΆΠΈΠ²ΡΡ Π΄ΠΎΠ»Π³ΠΎ. ΠΡΠ»ΠΈ ΡΡ Π·Π°Π±ΡΠ» Π²ΡΠ·Π²Π°ΡΡ remove() β Π΄Π°Π½Π½ΡΠ΅ ΠΎΡΡΠ°Π½ΡΡΡΡ Π² ΠΏΠ°ΠΌΡΡΠΈ Π½Π°Π²ΡΠ΅Π³Π΄Π°. ΠΡΠΈΠΌΠ΅Ρ: private static final ThreadLocal<UserContext> context = ThreadLocal.withInitial(UserContext::new); public void handleRequest() { try { context.set(new UserContext("user123")); // ΡΠ°Π±ΠΎΡΠ° Ρ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠΎΠΌ } finally { context.remove(); // ΠΠΠ―ΠΠΠ’ΠΠΠ¬ΠΠ! } } β οΈ Π§ΡΠΎ ΠΏΠΎΠΉΠ΄ΡΡ Π½Π΅ ΡΠ°ΠΊ Π±Π΅Π· remove()? - ΠΠΎΡΠΎΠΊ ΠΈΠ· ΠΏΡΠ»Π° Π·Π°ΠΊΠΎΠ½ΡΠΈΡ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π·Π°ΠΏΡΠΎΡ, Π½ΠΎ UserContext ΠΎΡΡΠ°Π½Π΅ΡΡΡ Π²ΠΈΡΠ΅ΡΡ Π² ThreadLocalMap ΡΡΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ°. - ΠΡΠ»ΠΈ UserContext ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΡΡΠ»ΠΊΠΈ Π½Π° Π΄ΡΡΠ³ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, HttpSession, EntityManager ΠΈ Ρ.Π΄.) β Π²ΡΡ ΡΡΠ° ΡΠ΅ΠΏΠΎΡΠΊΠ° Π½Π΅ Π±ΡΠ΄Π΅Ρ GC-ΡΠΈΡΡΡΡ. - Π ΡΠ°ΠΊ Π½Π°ΠΊΠ°ΠΏΠ»ΠΈΠ²Π°Π΅ΡΡΡ ΡΡΠ΅ΡΠΊΠ°. π‘ Π‘ΠΎΠ²Π΅ΡΡ: - ΠΡΠ΅Π³Π΄Π° Π²ΡΠ·ΡΠ²Π°ΠΉ remove() Π² finally. - ΠΠ»Ρ Spring ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ RequestScope ΠΈΠ»ΠΈ @ControllerAdvice Π²ΠΌΠ΅ΡΡΠΎ ThreadLocal. - ΠΡΠΎΠ²Π΅ΡΡΠΉ ΠΊΠΎΠ΄ ΡΡΠΎΡΠΎΠ½Π½ΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ, Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ThreadLocal, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π² ΡΠΈΠ»ΡΡΡΠ°Ρ ΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΏΡΠΎΡΠ°Ρ . π @BookJava
ΠΠ°Π½Π°Π» Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ ΠΠ°ΠΊΡΠΈΠΌΠ΅ΡΠ΅ΡΠ°
1Β 612 ΠΏΠΎΠ΄ΠΏΠΈΡΡΠΈΠΊΠΎΠ² Β· ΠΠ°ΡΠΊΠ°