Spring java Π΄Π»Ρ ΡΠ΅Π³ΠΎ
Spring Java: ΠΎΡΠ½ΠΎΠ²Ρ ΠΈ ΡΡΠΎΠΊΠΈ Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ
Π‘ΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅
ΠΠ° ΡΠ΅Π³ΠΎΠ΄Π½ΡΡΠ½ΠΈΠΉ Π΄Π΅Π½Ρ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π΄Π»Ρ Π²ΡΠ΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΠΊΡΠΈΠΏΡΠΎΠ²ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ β Spring Java. ΠΡΠ½ΠΎΠ²Π½ΠΎΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ° Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π² Π²ΠΈΠ΄Π΅ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡΠ° loose-coupled ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², Π½Π΅ ΠΏΡΠΈΠ²ΡΠ·Π°Π½Π½ΡΡ Π΄ΡΡΠ³ ΠΊ Π΄ΡΡΠ³Ρ.
ΠΡΠΎΡΠ΅ Π³ΠΎΠ²ΠΎΡΡ, ΡΠ΅ΠΌ ΠΌΠ΅Π½ΡΡΠ΅ Π±Π»ΠΎΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ²ΡΠ·Π°Π½Ρ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΎΠ±ΠΎΠΉ, ΡΠ΅ΠΌ Π»Π΅Π³ΡΠ΅ ΠΏΡΠΎΠΏΠΈΡΠ°ΡΡ Π½ΠΎΠ²ΡΠΉ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π» ΠΈ ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΡΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΡΡ ΡΡΡΡΠΊΡΡΡΡ. ΠΠ΄Π½ΠΈΠΌ ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΡΠΊΠΈΡ ΠΈ ΠΏΡΠΎΡΡΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΠΌΠΈ. Π‘ ΠΏΠΎΠΌΠΎΡΡΡ Spring Java ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΡΡΡΠΊΡΡΡΠΎΠΉ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅Ρ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ Π³Π»Π°Π²Π½ΠΎΠΉ Π»ΠΎΠ³ΠΈΠΊΠΈ ΡΠ²ΡΠ·Π°Π½Π½ΠΎΡΡΠΈ Ρ ΠΠ. ΠΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π»ΠΎΠ³ΠΈΠΊΠΈ Π½Π΅ ΠΏΠΎΠ²Π»ΠΈΡΡΡ Π½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΎΠ½Π½ΠΎΡΡΡ, ΡΠΎ Π΅ΡΡΡ Π½Π΅ Π½Π°ΡΡΡΠ°Ρ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΈΠ΄Π΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. Spring ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΠΎΡΡΡΡ.
Π Π°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΈ ΡΡΡΡΠΊΡΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π°Π»ΡΡΡ ΠΈΠ»ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ Π² Π»ΡΠ±ΡΡ ΠΌΠ΅ΡΡΠ°Ρ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ Π΄ΡΡΠ³ ΠΎΡ Π΄ΡΡΠ³Π°. ΠΠΎ ΡΡΡΠΈ, ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΡ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΠΎ ΠΎΠ½Π° Π΄Π°ΠΆΠ΅ Π½Π΅ ΠΏΠΎΠΉΠΌΠ΅Ρ, ΡΡΠΎ ΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Spring Java. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π΄Π°Π½Π½ΡΠΉ ΡΠΊΡΠΈΠΏΡΠΎΠ²ΡΠΉ ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΏΡΠΎΡΠ°Π΅Ρ ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΠΎΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΠ»Π΅ΠΌΠ΅Π½Ρ, ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΠΉ Π΄Π»Ρ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ° IoC, Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ ΠΈΠ½ΠΆΠ΅ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ Π½Π° Π»ΠΎΠΆΠ½ΡΠ΅ Π²Π·Π°ΠΈΠΌΠΎΡΠ²ΡΠ·ΠΈ ΠΈ ΡΠ΅ΠΌ ΡΠ°ΠΌΠΈΠΌ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ ΠΈ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΡΡΡ Π΅Π³ΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ.
Spring Java ΡΠ°ΠΊΠΆΠ΅ Π·Π°ΠΌΠ΅ΡΠ½ΠΎ ΡΠΏΡΠΎΡΠ°Π΅Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈ ΠΏΠΎΠ΄ΡΡΡΠΎΠΉΠΊΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΡΠΎ Π΅ΡΡΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π»Π΅Π³ΠΊΠΎ ΠΈ Π±Π΅Π· ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π½Π°ΡΡΡΠΎΠΈΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΠΎΠ΄ ΡΠ΅Π±Ρ, Π½Π΅ Π΄Π΅Π»Π°Ρ ΠΏΡΠΈ ΡΡΠΎΠΌ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅Π½Π°ΡΡΡΠΎΠ΅ΠΊ Ρ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ Spring.
Π‘Π΅Π³ΠΎΠ΄Π½Ρ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ ΠΏΠΎ Java Spring ΡΡΠ΅Π±Π½ΠΈΠΊΠΈ Π² ΠΎΠ³ΡΠΎΠΌΠ½ΠΎΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π΅ ΠΈ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠ·ΡΠΊΠ°Ρ (Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΎΠΌ, ΡΡΡΡΠΊΠΎΠΌ ΠΈ Ρ. Π΄). ΠΠΎΡΡΠΎΠΌΡ ΠΎΡΠΈΠ»ΠΈΡΡ «ΠΠΆΠ°Π²Ρ» Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ, Π° ΠΌΡ Π² ΡΡΠΎΠΌ Π²Π°ΠΌ ΠΏΠΎΡΡΠ°ΡΠ°Π΅ΠΌΡΡ ΠΏΠΎΠΌΠΎΡΡ!
Spring ΠΈΠ·Π½ΡΡΡΠΈ
ΠΠ°ΠΊ ΠΏΠΎΡΡΡΠΎΠ΅Π½Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° «ΠΠΆΠ°Π²Π° ΡΠΏΡΠΈΠ½Π³» ΠΈΠ·Π½ΡΡΡΠΈ, Π½Π°Π²Π΅ΡΠ½ΠΎΠ΅, Π·Π½Π°Π΅Ρ Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ ΠΊΠ°ΠΆΠ΄ΡΠΉ. ΠΠΎΡΡΠΎΠΌΡ Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π±ΠΎΠ»Π΅Π΅ Π΄Π΅ΡΠ°Π»ΡΠ½ΠΎ ΡΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ:
Spring: Π½Π°ΡΠ°Π»ΠΎ
ΠΡΠ»ΠΈ Π²Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΡΠΈΠ»ΠΈ Π½Π°ΡΠ°ΡΡ Π·Π½Π°ΠΊΠΎΠΌΠΈΡΡΡΡ Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π½Π° «ΠΠΆΠ°Π²Π° ΡΠΏΡΠΈΠ½Π³», ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌ Π½Π°ΡΠΈΠ½Π°ΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ Java ee Spring (ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ). ΠΡΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΏΡΠΎΡΡΠ΅ΠΉΡΠΈΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ Π΄Π»Ρ Π΄Π°Π½Π½ΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ «ΠΠΆΠ°Π²Π°». Π€ΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π±Π΅Π· ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΠΊ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Ρ Π·Π°Π΄Π°Ρ, ΡΡΠΎ Π±ΡΠ»ΠΈ ΡΠΆΠ΅ ΡΠ°Π½Π΅Π΅ ΠΎΠΏΠΈΡΠ°Π½Ρ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Java. ΠΡΠΎΡΡΠΎΡΠ° ΠΈ ΠΏΡΠΎΠ·ΡΠ°ΡΠ½ΠΎΡΡΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ° ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π²Π°ΠΌ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΠΎΡΠΈΠ±ΠΊΠΈ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈ.
Spring ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΠΈΡΠ°ΡΡ ΠΊΠ°ΠΊ ΡΠΎΠ²ΠΎΠΊΡΠΏΠ½ΠΎΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ², ΡΠ°ΠΊ ΠΈ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΉ (ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ Π² ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ΅). ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ Π΄Π°Π½Π½ΡΡ ΡΡΡΡΠΊΡΡΡ ΠΌΠΎΠΆΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°ΡΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ Π΄ΡΡΠ³ ΠΎΡ Π΄ΡΡΠ³Π°, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΎΠ½ΠΈ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΡΡ ΠΎΠ³ΡΠΎΠΌΠ½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΌ ΡΠ°Π±ΠΎΡΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ ΠΏΡΠΈ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎΠΌ Π·Π°ΠΏΡΡΠΊΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΡΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΡΠ°Π·Π΄Π΅Π»ΡΡΡΡΡ Π½Π° ΡΡΡΡΠΊΡΡΡΠ½ΡΠ΅ Π΄Π΅ΡΠ°Π»ΠΈ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΈΡ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ:
ΠΠ° ΡΠ΅Π³ΠΎΠ΄Π½ΡΡΠ½ΠΈΠΉ Π΄Π΅Π½Ρ Π΄Π»Ρ Π²ΡΠ΅Ρ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ² Π² «Π‘ΠΏΡΠΈΠ½Π³» ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΡΡΠ΄ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ:
ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π²ΡΠ΅Ρ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ², ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΡΠΎ ΠΎΡΠ½ΠΎΠ²Π° Java Spring. ΠΠ»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ Π½Π°ΡΠΈΠ½Π°ΡΡ ΠΈΠ·ΡΡΠ°ΡΡ Π²ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΏΠΎ Π³ΡΡΠΏΠΏΠ°ΠΌ ΠΈ ΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ .
ΠΠ°ΠΊ ΡΠ΄Π΅Π»Π°ΡΡ ΠΏΡΠΎΡΡΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Java Spring (ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ)
ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² Spring ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ. ΠΠ΄Π½ΠΈΠΌ ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΡ ΠΈ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΡΠΎΡΡΡΡ ΡΡΠΈΡΠ°Π΅ΡΡΡ Π²ΡΠ½ΠΎΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π² XML-ΡΠ°ΠΉΠ». ΠΡΠΎΡ ΡΠΈΠΏ ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ Π²Π΅ΡΡΠΈΡΡ Java Spring. ΠΠ»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ°ΠΊΠΈΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΠΊΠ°ΠΊ java (1.5), tomcat (6), ant (1.7), eclipse (3), junit 4x.
ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΠΎΠΏΠΈΡΠ°ΡΡ ΠΏΡΠΎΡΡΡΡ Π·Π°Π΄Π°ΡΠΊΡ Π² Java Spring, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡΠΈΠ΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ ΡΠ°ΠΊΠΎΠΉ ΠΏΠΎΠΎΡΠ΅ΡΠ΅Π΄Π½ΠΎΡΡΠΈ:
ΠΠ° ΡΡΠΎΠΌ ΡΡΠ°ΠΏΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ Π²Ρ ΡΠΏΠ΅ΡΠ½ΠΎ Π·Π°Π²Π΅ΡΡΠΈΠ»ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΡ ΡΠ΅ΡΠ΅Π²ΠΎΠ³ΠΎ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ. ΠΠ°Π»ΡΡΠ΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΠΎΠ΄ΡΡΡΠΎΠΈΡΡ Spring Java config:
Π§ΡΠΎ ΠΆΠ΅ ΠΌΡ ΡΠ΄Π΅Π»Π°Π»ΠΈ Π² Spring Java? ΠΠ»Ρ ΡΠ°ΠΉΠ½ΠΈΠΊΠΎΠ² Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ΠΈΠ· Π²ΡΡΠ΅ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΡ ΠΏΡΠ½ΠΊΡΠΎΠ² Π±ΡΠ΄ΡΡ Π½Π΅ΠΏΠΎΠ½ΡΡΠ½Ρ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ ΠΎΠΏΠΈΡΠ°ΡΡ ΠΏΠΎΠΏΡΠΎΡΠ΅:
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Java Spring Security ΠΈ Π·Π°ΡΠ΅ΠΌ ΠΎΠ½ Π½ΡΠΆΠ΅Π½?
Spring Security ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π°Π²ΡΠΎΡΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΈ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π΄Π°Π½Π½ΡΠΉ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ ΠΊΠΎΡΠΏΠΎΡΠ°ΡΠΈΠ²Π½ΡΡ Π·Π°Π΄Π°Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Spring Framework.
ΠΠ»ΡΡΠ΅Π²ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Spring Security:
ΠΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Java
Integration Java Spring β ΡΡΠΎ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π² ΡΠ΅Π±Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΡ ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΎΡΠ²Π΅ΡΠ°ΡΡΠΈΡ Π·Π° ΠΎΡΠΏΡΠ°Π²ΠΊΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π΄Π°Π½Π½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΠ΅ Π΄Π΅ΠΉΡΡΠ²Π΅Π½Π½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²ΠΎΡΠ½ΠΎΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ:
Spring Hadoop
Java Hibernate
ΠΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠ΅ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π΅ ΠΌΠΎΠ³ΡΡ ΠΎΠ±ΠΎΠΉΡΠΈΡΡ Π±Π΅Π· Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ. ΠΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ β Π‘Π£ΠΠ ΠΈ Ρ. Π΄. ΠΠΎ ΡΡΡΡΠΊΡΡΡΠ΅ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ ΠΈ ΡΠ°ΡΡΠΎΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄Π΅Π»ΠΈΡΡ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ΄Π³ΡΡΠΏΠΏ, ΠΈ ΡΠ°ΠΊ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΎΡΡ, ΡΡΠΎ ΡΠ΅Π»ΡΡΠΈΠΎΠ½Π½ΡΠ΅ ΡΠ²Π»ΡΡΡΡΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΠΌΠΈ. ΠΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΉ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π±ΠΎΠ»ΡΡΠΈΠ΅, ΠΈ Π½Π΅ Π²ΡΠ΅Π³Π΄Π° ΠΈΡ ΡΠ°ΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ.
ΠΠ»Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°ΠΆΠ΅Π½Π½Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° Π² Π΄ΡΡΠ³ΠΎΠΉ Π½Π° Java Hibernate Spring ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠΎΠ²:
ΠΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Java Hibernate Spring:
ΠΡΠ°ΠΊΡΠΈΠΊΠ° Π΄Π»Ρ Π½ΠΎΠ²ΠΈΡΠΊΠΎΠ²
ΠΠ΄Π½ΠΈΠΌ ΠΈΠ· ΡΠ°ΠΌΠΈΡ ΠΏΡΠΎΡΡΡΡ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² Π½Π° Java Spring ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ «ΠΏΡΠΈΠ²Π΅Ρ». ΠΠ»Π°ΡΡΠΎΡΠΌΠ° Π½Π΅ ΡΡΠ΅Π±ΡΠ΅Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ ΠΈΠ»ΠΈ ΠΊΠ°ΠΊΠΈΡ -Π»ΠΈΠ±ΠΎ ΡΠ»ΠΎΠΆΠ½ΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΉ ΠΈ ΡΠΎΡΠΌ Π½Π° bootstrap. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΏΡΠΎΡΡΠΎΠΉ html Π±Π΅Π· Π΄ΠΈΠ½Π°ΠΌΠΈΠΊΠΈ. Π ΠΏΡΡΠΊΠ°ΠΉ ΠΎΡΠ½ΠΎΠ²Π½Π°Ρ ΡΠΎΡΠΌΠ° ΠΈΠΌΠ΅Π΅Ρ:
ΠΠΎΠ»ΡΡΠ΅ Π½Π°ΠΌ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π½ΡΠΆΠ½ΠΎ. ΠΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΠΌ ΠΊ Java Spring. ΠΡΠ°ΠΊΡΠΈΠΊΠ°:
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ MVC, ΠΈ ΠΊΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΎΠ½ΠΎ ΡΠ²ΡΠ·Π°Π½ΠΎ ΡΠΎ Spring
MVC β ΡΡΠΎ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½Π°Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° «Π‘ΠΏΡΠΈΠ½Π³Π°», ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π° Π½Π° Π·Π°ΠΏΡΠΎΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ. Π Π½Π΅ΠΉ Π·Π°Π΄Π°Π½ ΡΡΠ°ΡΠΈΡΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π²ΠΈΠ΄ Π΄Π»Ρ Π²ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΠΉ Π·Π°ΠΏΡΠΎΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²ΠΎΡΠ½ΡΡ ΡΠΈΡΡΠ΅ΠΌ. ΠΠ°Π΄Π°Π½ΠΈΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΠΏΡΠΎΡΡΡΠΌ ΠΈ Π»Π°ΠΊΠΎΠ½ΠΈΡΠ½ΡΠΌ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΠΎ ΠΆΠ΅Π»Π°Π½ΠΈΡ ΠΌΠΎΠ³ Π±Π΅Π· ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π·Π°Π½ΠΎΠ²ΠΎ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ°Π½Π½Π°Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° ΠΏΡΠΎΠΊΠ»Π°Π΄ΡΠ²Π°Π΅Ρ ΠΏΡΡΠΌΠΎΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΊ front-end-ΠΊΠΎΠ΄Ρ. ΠΡΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ ΡΠ²ΡΠ·Π°Π½Ρ Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ Servlet API. ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΡΠΎΠΉ Π²Π·Π°ΠΈΠΌΠΎΡΠ²ΡΠ·ΠΈ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΏΡΠΎΡΠ°Π΅ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
Π Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½ΡΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠ½Π΅ΡΡΠΈ:
Π Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½ΡΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠ½Π΅ΡΡΠΈ:
Java Spring MVC (model-view-controlle) ΠΎΡΠΊΡΡΠ²Π°Π΅Ρ ΠΏΠ΅ΡΠ΅Π΄ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠΌ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ:
ΠΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΊΠ΅Ρ
ΠΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΊΠ΅Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΡΠ½Π΄Π°ΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ°ΡΡΡΡ ΡΠΈΡΡΠ΅ΠΌΡ ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΏΡΠ°Π²Π»ΡΡΡ Π±ΠΎΠ±Π°-ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°. ΠΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠ΅ΠΉ Π·Π΄Π΅ΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ BeanFactory, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΡΠ°Π±Π»ΠΎΠ½ ΡΠ°Π±ΡΠΈΠΊΠΈ, ΡΡΡΡΠ°Π½ΡΠ΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ΅ ΡΠΈΠ½Π³Π»ΡΠΎΠ½ΠΎΠ² ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΡΠ΄Π΅Π»ΠΈΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΠΈ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ ΠΎΡ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠΉ Π»ΠΎΠ³ΠΈΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
ΠΠ°ΠΊΠ΅Ρ DAO ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ JDBC-ΡΡΠΎΠ²Π΅Π½Ρ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΠΈ, ΡΡΠΎ ΠΈΠ·Π±Π°Π²Π»ΡΠ΅Ρ ΠΎΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π΄Π΅Π»Π°ΡΡ ΡΡΠΎΠΌΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ JDBC-ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΡΠ°Π·Π±ΠΎΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΏΠΎΡΡΠ°Π²ΡΠΈΠΊΠ° ΠΊΠΎΠ΄ΠΎΠ² ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ ΠΎΡΠΈΠ±ΠΎΠΊ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅, Π° ΡΠ°ΠΊΠΆΠ΅ Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠ²Π½ΠΎΠ΅ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΠΌΠΈ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΠΊΠ»Π°ΡΡΠΎΠ², ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ, Π½ΠΎ ΠΈ Π΄Π»Ρ Π²ΡΠ΅Ρ Π²Π°ΡΠΈΡ Pojos (ΠΏΡΠΎΡΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Java).
ΠΠ°ΠΊΠ΅Ρ ORM ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ ΡΠ»ΠΎΠ΅Π² ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ API Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠ΅Π»ΡΡΠΈΠΎΠ½Π½ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², Π²ΠΊΠ»ΡΡΠ°Ρ JDO, Hibernate ΠΈ Ibatis. ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΏΠ°ΠΊΠ΅Ρ ΠΠ Π, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ Π²ΡΠ΅ O/R-ΠΊΠ°ΡΡΠΎΠ³ΡΠ°ΡΡ Π² ΡΠΎΡΠ΅ΡΠ°Π½ΠΈΠΈ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ Spring-ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΠΠ-ΠΏΠ°ΠΊΠ΅Ρ Π² Spring ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΠΉ Π°ΡΠΏΠ΅ΠΊΡ ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΠΠ Alliance, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠ΅ΡΠΎΠ΄-ΠΏΠ΅ΡΠ΅Ρ Π²Π°ΡΡΠΈΠΊ ΠΈ ΠΎΡΠ²ΡΠ·Π°ΡΡ ΠΊΠΎΠ΄ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ.
ΠΡΠΈΠΌΠ΅Π½ΡΡ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΠ΅ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΠΈΡΡ ΠΎΠ΄Π½ΡΡ ΡΠ΅ΠΊΡΡΠΎΠ², ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΊΠ»ΡΡΠΈΡΡ Π²ΡΠ΅ Π²ΠΈΠ΄Ρ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΡΠ΅ΡΠΊΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π² ΠΊΠΎΠ΄, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ NET-Π°ΡΡΠΈΠ±ΡΡΡ.
ΠΠ΅Π±-ΠΏΠ°ΠΊΠ΅Ρ Spring ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ Π²Π΅Π±-ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎΡΠ°ΡΡΠ½Π°Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ, ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠΎΠ² Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ ΡΠ΅ΡΠ²Π»Π΅ΡΠΎΠ² ΡΠ»ΡΡΠ°ΡΠ΅Π»Π΅ΠΉ ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° Π²Π΅Π±-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π² Spring MVC ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΡΠ΅ΡΠΊΠΎΠ΅ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΠΌΠΎΠ΄Π΅Π»ΡΡ ΠΊΠΎΠ΄Π° Π΄ΠΎΠΌΠ΅Π½Π° ΠΈ Π²Π΅Π±-ΡΠΎΡΠΌΠΎΠΉ, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²ΡΠ΅ Π΄ΡΡΠ³ΠΈΠ΅ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ Spring Framework Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ.
Π’ΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ Π΄ΠΎΠΌΠ΅Π½Π½ΡΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌ
ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ JPA Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π»ΠΎ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ»Π΅Π΄ΠΈΡΡ Π·Π° ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΡΡΡΡ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΡΠ°ΠΊΠΈΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ:
ΠΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ Π³ΡΡΠΏΠΏΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ²
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΊΠ»Π°ΡΡΠΎΠ²:
Π Π°ΡΡΠΈΡΡΠΎΠ²ΠΊΠ° ΠΎΡΠ½ΠΎΠ²Π½ΡΡ Π°Π±Π±ΡΠ΅Π²ΠΈΠ°ΡΡΡ Π² Java Spring
ΠΠ½Π°ΠΊΠΎΠΌΡΡΡ Ρ ΡΠ°ΠΊΠΈΠΌ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΡΠΌ ΡΠΊΡΠΈΠΏΡΠΎΠ²ΡΠΌ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΊΠ°ΠΊ «ΠΠΆΠ°Π²Π° ΡΠΏΡΠΈΠ½Π³», ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΡΡΠ΅ΡΠΈΡΡ ΡΠ°Π·Π½ΡΠ΅ Π°Π±Π±ΡΠ΅Π²ΠΈΠ°ΡΡΡΡ. ΠΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, Π½Π΅ Π½Π° Π²ΡΠ΅Ρ ΡΠ°ΠΉΡΠ°Ρ ΠΈΠ»ΠΈ Π² ΡΡΠ΅Π±Π½ΠΈΠΊΠ°Ρ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ ΠΈΡ ΡΠ°ΡΡΠΈΡΡΠΎΠ²ΠΊΡ, ΠΏΠΎΡΡΠΎΠΌΡ Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌΡΡ, ΡΡΠΎ Π΅ΡΡΡJava Spring. ΠΡΠΈΠΌΠ΅Ρ:
Π‘Π΅Π³ΠΎΠ΄Π½Ρ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ ΠΈ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΏΠΎ Java Spring. Π£ΡΠΎΠΊΠΈ, ΡΡΠ΅Π±Π½ΠΈΠΊΠΈ, Π²Π΅Π±-ΡΠ΅ΠΌΠΈΠ½Π°ΡΡ Π½Π΅ΠΏΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎΠΌΠΎΠ³ΡΡ Π²Π°ΠΌ Π±Π΅Π· ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΠΈΠ·ΡΡΠΈΡΡ Π΄Π°Π½Π½ΡΠΉ ΡΠΊΡΠΈΠΏΡΠΎΠ²ΡΠΉ ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΈ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΏΠ΅ΡΠ΅ΡΠΌΠΎΡΡΠΈΡΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΏΠΎ «Π‘ΠΏΡΠΈΠ½Π³Ρ», Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π°Π²ΡΠΎΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π΄Π΅ΡΠ°Π»ΡΠ½ΠΎ ΠΎΠΏΠΈΡΠ°Π»ΠΈ Π²ΡΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ ΡΡΡΡΠΊΡΡΡΠ΅ «ΠΠΆΠ°Π²Π°», Π° ΡΠ°ΠΊΠΆΠ΅ ΠΎΡΠ²Π΅ΡΠΈΠ»ΠΈ Π½Π° Π²ΠΎΠΏΡΠΎΡΡ, ΠΊΠ°ΠΊ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ ΡΠ°ΡΡΠΎ ΡΠΎΠ²Π΅ΡΡΠ°Π΅ΠΌΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ.
ΠΠ°ΡΠΈΠΎΠ½Π°Π»ΡΠ½Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΈΠΌ. Π. Π. ΠΠ°ΡΠΌΠ°Π½Π°
Bauman National Library
ΠΠ΅ΡΡΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ
Spring Framework
Spring Framework β ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΠ°ΠΌΡΡ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ² Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° Java. ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ Spring Π½Π΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π» ΠΊΠ°ΠΊΡΡ-Π»ΠΈΠ±ΠΎ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ ΠΌΠΎΠ΄Π΅Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΎΠ½ ΡΡΠ°Π» ΡΠΈΡΠΎΠΊΠΎ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ½Π½ΡΠΌ Π² Java-ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π΅ Π³Π»Π°Π²Π½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΊΠ°ΠΊ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π° ΠΈ Π·Π°ΠΌΠ΅Π½Π° ΠΌΠΎΠ΄Π΅Π»ΠΈ Enterprise JavaBeans. Spring ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π±ΠΎΜΠ»ΡΡΡΡ ΡΠ²ΠΎΠ±ΠΎΠ΄Ρ Java-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ Π² ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Spring ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΠΌΠ°ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅Π΄ΠΎΡΡΡΠΏΠ½Ρ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΡΠ°Π½Π΄Π°ΡΡΠΎΠ² Java EE, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Spring Batch ΠΈΠ»ΠΈ Spring Integration; ΠΊΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΎΠ½ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Ρ ΠΎΡΠΎΡΠΎ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΈ Π»ΡΠ³ΠΊΠΈΠ΅ Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΡΠ΅Π΄ΡΡΠ²Π° ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ, Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡΠΈΡ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΊΠΎΡΠΏΠΎΡΠ°ΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΡΠ°Π±Π°. [ΠΡΡΠΎΡΠ½ΠΈΠΊ 2]
ΠΠ΅ΠΆΠ΄Ρ ΡΠ΅ΠΌ, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΡΠ΄ΡΠ° Spring ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌΡ Π² Π»ΡΠ±ΠΎΠΌ Java-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, ΠΈ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠΉ ΠΈ ΡΡΠΎΠ²Π΅ΡΡΠ΅Π½ΡΡΠ²ΠΎΠ²Π°Π½ΠΈΠΉ Π΄Π»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° Java Enterprise ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅. ΠΠΎ ΡΡΠΈΠΌ ΠΏΡΠΈΡΠΈΠ½Π°ΠΌ Spring ΠΏΡΠΈΠΎΠ±ΡΡΠ» Π±ΠΎΠ»ΡΡΡΡ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΡΡΡ ΠΈ ΠΏΡΠΈΠ·Π½Π°ΡΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌΠΈ ΠΊΠ°ΠΊ ΡΡΡΠ°ΡΠ΅Π³ΠΈΡΠ΅ΡΠΊΠΈ Π²Π°ΠΆΠ½ΡΠΉ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ.
Π‘ΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅
Π‘ΡΡΡΠΊΡΡΡΠ°
Spring β ΡΡΠΎ Π½Π΅ ΠΎΠ΄ΠΈΠ½ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ. ΠΡΠΎ ΠΎΠ±ΡΠ΅Π΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π΄Π»Ρ ΡΠ΅Π»ΠΎΠ³ΠΎ ΡΡΠ΄Π° Π½Π΅Π±ΠΎΠ»ΡΡΠΈΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ², ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΠ²ΠΎΡ ΡΠ°Π±ΠΎΡΡ.
Π£ Spring ΠΌΠΎΠ΄ΡΠ»ΡΠ½Π°Ρ ΡΡΡΡΠΊΡΡΡΠ°. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½ΡΠΆΠ½Ρ Π΄Π»Ρ Π½Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ Π½Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡ ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠΌΠΈ Π·Π°Π²Π΅Π΄ΠΎΠΌΠΎ Π½Π΅ Π±ΡΠ΄Π΅ΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ. ΠΠΌΠ΅Π½Π½ΠΎ ΡΡΠΎΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΈ ΠΏΠΎΠΌΠΎΠ³ Spring ΠΎΠ±ΠΎΠΉΡΠΈ ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠ° Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ (EJB) ΠΈ Π·Π°Ρ Π²Π°ΡΠΈΡΡ Π»ΠΈΠ΄Π΅ΡΡΡΠ²ΠΎ. [ΠΡΡΠΎΡΠ½ΠΈΠΊ 3] ΠΠ°Π½Π½Π°Ρ ΡΡΡΡΠΊΡΡΡΠ° ΠΏΠΎΠΊΠ°Π·Π°Π½Π° Π½Π° Π ΠΈΡΡΠ½ΠΊΠ΅ 1.
Spring ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ:
ΠΠΎΠ΄ΡΠ»Ρ data access ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π² ΡΠ΅Π±Π΅ ΡΡΠ΅Π΄ΡΡΠ²Π° Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π΄Π°Π½Π½ΡΠΌΠΈ (Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ, Ρ Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ ), web β Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Π² ΡΠ΅ΡΠΈ (Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΠΈ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ).
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π΅ΡΡΡ Π΅ΡΠ΅ ΡΠ°ΠΊ-Π½Π°Π·ΡΠ²Π°Π΅ΠΌΠ°Ρ ΡΠ΅Π»Π°Ρ ΡΠΏΡΠΈΠ½Π³-ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ°: ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π΄ΡΡΠ³ΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ Π²Ρ ΠΎΠ΄ΡΡ Π² ΡΠ°ΠΌ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎ, Π½ΠΎ ΠΏΡΠΈ ΡΡΠΎΠΌ Π±Π΅ΡΡΠΎΠ²Π½ΠΎ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΡΡΡΡΡ Π² Π²Π°Ρ ΠΏΡΠΎΠ΅ΠΊΡ Π½Π° ΡΠΏΡΠΈΠ½Π³Π΅ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠΎΡ ΠΆΠ΅ spring security Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠ΅ΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Π½Π° ΡΠ°ΠΉΡΠ΅).
ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Spring Framework
DI/IoC
IoC (Inversion of Control) β ΠΈΠ½Π²Π΅ΡΡΠΈΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ. ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π²Ρ ΡΠ°ΠΌΠΈ ΠΏΡΠΎΠΏΠΈΡΡΠ²Π°Π΅ΡΠ΅ Π² ΡΠ²ΠΎΠ΅ΠΌ ΠΊΠΎΠ΄Π΅ ΠΊΠ°ΠΊΠΎΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΠΊΠ°ΠΊΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π²ΡΠ·Π²Π°ΡΡ, Π° Π² ΡΠ»ΡΡΠ°Π΅Ρ Ρ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ°ΠΌΠΈ β ΡΠ°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΡΠΆΠ΅ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ Π±ΡΠ΄Π΅Ρ Π²ΡΠ·ΡΠ²Π°ΡΡ Π² Π½ΡΠΆΠ½ΡΠΉ Π΅ΠΌΡ ΠΌΠΎΠΌΠ΅Π½Ρ ΡΠΎΡ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΆΠ΅ Π½Π°ΠΏΠΈΡΠ°Π»ΠΈ. Π’ΠΎ Π΅ΡΡΡ, ΡΡΡ ΡΠΆΠ΅ Π½Π΅ Π²Ρ ΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠΌ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π°/ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π° ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ Π·Π° Π²Π°Ρ. ΠΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π»ΠΈ Π΅ΠΌΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ (ΠΈΠ½Π²Π΅ΡΡΠΈΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ).
Spring MVC
Π―Π΄ΡΠΎ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π±Π°Π·ΠΎΠ²ΡΠ΅ ΡΡΠ΅Π΄ΡΡΠ²Π° Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ β ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ (Π±ΠΈΠ½Π°ΠΌΠΈ, beans), Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ, MVC ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ, ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, Π±Π°Π·ΠΎΠ²ΡΠΉ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΠ. Π ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΡΡΠΎ Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΈ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΠΈ. ΠΠΎ ΡΡΡΠΈ, Π½Π΅ΡΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π²ΡΠ΅ΠΌΠΈ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ. ΠΠ°Π½Π½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ Π½Π° Π ΠΈΡΡΠ½ΠΊΠ΅ 3:
Spring Security
Spring Security ΡΡΠΎ Java/JavaEE framework, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡΠΈΠΉ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΡΠΈΡΡΠ΅ΠΌ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΈ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ Π΄ΡΡΠ³ΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ Π΄Π»Ρ ΠΊΠΎΡΠΏΠΎΡΠ°ΡΠΈΠ²Π½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΡΠΎΠ·Π΄Π°Π½Π½ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Spring Framework. Π£ Spring Security Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊ: [ΠΡΡΠΎΡΠ½ΠΈΠΊ 4]
Spring Boot
Spring Boot ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ XML ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ, ΡΠ°ΠΊΠΆΠ΅ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅Ρ ( Ρ.Π΅. ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ Π² ΠΏΠΎΡΡΠ΄ΠΎΠΊ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ) ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΡΠΏΠ°ΠΊΠΎΠ²ΡΠ²Π°Π΅Ρ Π΅Π³ΠΎ Π² ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΡΠ²ΡΠ·ΡΡΡΠ΅Π΅ Π·Π²Π΅Π½ΠΎ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ Π²ΠΌΠ΅ΡΡΠ΅ Π½Π°Π±ΠΎΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Π² Π³ΠΎΡΠΎΠ²ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.
Π€ΡΠ½ΠΊΡΠΈΠΈ Spring Boot:
ΠΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° Spring Framework
Π‘ΡΠΈΡΠ°Π΅ΡΡΡ, ΡΡΠΎ Spring Framework ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ ΠΌΠΎΠ΄Π΅Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΡ Π½Π° Π»ΡΡΡΠΈΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ°Ρ ΠΈΠ½Π΄ΡΡΡΡΠΈΠΈ, ΠΈ Π΄Π΅Π»Π°Π΅Ρ Π΅Ρ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠΉ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ ΠΎΠ±Π»Π°ΡΡΡΡ Java. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΊ Π΄ΠΎΡΡΠΎΠΈΠ½ΡΡΠ²Π°ΠΌ Spring ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠ½Π΅ΡΡΠΈ:
ΠΡΠΏΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ (Aspect Oriented Programming β AOP)
ΠΡΠΏΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ (ΠΠΠ) β ΡΡΠΎ ΠΎΠ΄Π½Π° ΠΈΠ· βΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠ°β Π² ΠΌΠΈΡΠ΅ Java. ΠΠΠ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠΊΠ²ΠΎΠ·Π½ΠΎΠΉ Π»ΠΎΠ³ΠΈΠΊΠΈ β Ρ.Π΅. Π»ΠΎΠ³ΠΈΠΊΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΊ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Ρ ΡΠ°ΡΡΠ΅ΠΉ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ β Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅ ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΡΠΎΠΉ Π»ΠΎΠ³ΠΈΠΊΠΈ ΠΏΠΎ Π²ΡΠ΅ΠΌΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠΎΠ΄Ρ ΠΎΠ΄ Spring ΠΊ ΠΠΠ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ βΠ΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΡ ΠΏΡΠΎΠΊΡΠΈβ Π΄Π»Ρ ΡΠ΅Π»Π΅Π²ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΈ βΠΏΡΠΈΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠΈβ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΊ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌΡ ΡΠΎΠ²Π΅ΡΡ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΊΠ²ΠΎΠ·Π½ΠΎΠΉ Π»ΠΎΠ³ΠΈΠΊΠΈ.
Aspect, Advice, Pointcut, JointPoint ΠΈ Advice Arguments Π² ΠΠΠ
Π‘ΡΡΠ΅ΡΡΠ²ΡΡΡ ΠΏΡΠ½ΠΊΡΡ, ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΡΠΎΡΡΠΎΠΈΡ Π°ΡΠΏΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅: [ΠΡΡΠΎΡΠ½ΠΈΠΊ 5]
Spring Bean
Π’Π΅ΡΠΌΠΈΠ½ Π±ΠΈΠ½ Π² Spring ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΡΡΠ»ΠΊΠΈ Π½Π° Π»ΡΠ±ΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ, ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΡΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠΌ. ΠΠ±ΡΡΠ½ΠΎ Π±ΠΈΠ½Ρ Π½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ ΡΡΠΎΠ²Π½Π΅ ΠΏΡΠΈΠ΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ JavaBean, Π½ΠΎ ΡΡΠΎ Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π΅ΡΠ»ΠΈ Π΄Π»Ρ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΡ Π±ΠΈΠ½ΠΎΠ² Π΄ΡΡΠ³ Ρ Π΄ΡΡΠ³ΠΎΠΌ ΠΏΠ»Π°Π½ΠΈΡΡΠ΅ΡΡΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ Constructor Injection. ΠΠ»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° Π±ΠΈΠ½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ApplicationContext. IoC ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ ΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΠΆΠΈΠ·Π½Π΅Π½Π½ΡΠΌ ΡΠΈΠΊΠ»ΠΎΠΌ ΡΠΏΡΠΈΠ½Π³ Π±ΠΈΠ½Π°, ΠΎΠ±Π»Π°ΡΡΡΡ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΈ Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΠ΅ΠΌ.
Scope Ρ Spring Bean
Π Spring ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΎΠ±Π»Π°ΡΡΠΈ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π±ΠΈΠ½ΠΎΠ²:
ΠΠΈΠ·Π½Π΅Π½Π½ΡΠΉ ΡΠΈΠΊΠ» Spring Bean
ΠΠΈΠ·Π½Π΅Π½Π½ΡΠΉ ΡΠΈΠΊΠ» Spring Π±ΠΈΠ½Π° β Π²ΡΠ΅ΠΌΡ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠ»Π°ΡΡΠ°. Spring Π±ΠΈΠ½Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΡΡΡΡ ΠΏΡΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Spring ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° ΠΈ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΠ΅ Π²ΡΠ΅Ρ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ. ΠΠΎΠ³Π΄Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ ΡΠ½ΠΈΡΡΠΎΠΆΠ°Π΅ΡΡΡ, ΡΠΎ ΡΠ½ΠΈΡΡΠΎΠΆΠ°Π΅ΡΡΡ ΠΈ Π²ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅. ΠΡΠ»ΠΈ Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°Π΄Π°ΡΡ ΠΊΠ°ΠΊΠΎΠ΅-Π»ΠΈΠ±ΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΏΡΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΈ ΡΠ½ΠΈΡΡΠΎΠΆΠ΅Π½ΠΈΠΈ Π±ΠΈΠ½Π°, ΡΠΎ Π½ΡΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ init() ΠΈ destroy(). ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π°Π½Π½ΠΎΡΠ°ΡΠΈΠΈ @PostConstruct ΠΈ @PreDestroy().
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Spring? ΠΠ±Π·ΠΎΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ° Java
ΠΠ° ΠΏΡΠΎΡΡΠΆΠ΅Π½ΠΈΠΈ Π²ΡΠ΅Π³ΠΎ ΠΌΠΎΠ΅Π³ΠΎ Π±Π»ΠΎΠ³Π° Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ ΡΡΠ°Π»ΠΊΠΈΠ²Π°ΡΡΡΡ ΡΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠΌΠΈ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡΠΌΠΈ ΡΠ°Π·Π½ΠΎΠΎΠ±ΡΠ°Π·Π½ΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ, ΠΏΡΠΈΡΠ΅ΠΌ Π²ΡΠ΅ ΠΎΠ½ΠΈ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½Ρ Π² ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ Spring Framework. ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ Spring, ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΠΈΡΠΎΠΊΠΈΠΌ ΡΠΏΠ΅ΠΊΡΡΠΎΠΌ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ, Π½Π΅ Π·Π°Π½ΠΈΠΌΠ°ΡΡΡ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠΌ Π±ΠΎΠ»ΡΡΠΈΡ ΠΎΠ±ΡΠ΅ΠΌΠΎΠ² ΠΊΠΎΠ΄Π° ΠΈ Π½Π΅ ΠΏΡΠΈΠ²ΡΠ·ΡΠ²Π°Ρ ΡΠΎΠ·Π΄Π°Π²Π°Π΅ΠΌΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΡΠ΅ΡΠ½ΠΎ ΠΊ ΠΊΠ°ΠΊΠΎΠΌΡ-ΡΠΎ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΌΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ.
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ Π²Ρ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΠ΅ΡΡ Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΎΠΉ Spring Framework Π±Π΅Π· Π°Π½Π°Π»ΠΈΠ·Π° ΠΊΡΡΠΏΠ½ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² ΠΈΠ»ΠΈ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΡ ΠΎΠ±ΡΡΡΠ½Π΅Π½ΠΈΠΉ.
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Spring?
ΠΠΎΠΆΠ°Π»ΡΠΉ, Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΄Π½ΠΎΠΉ ΡΠ°ΡΡΡΡ ΠΎΠ±ΡΡΡΠ½Π΅Π½ΠΈΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Spring ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎΡΠ½Π°Ρ ΠΊΠ»Π°ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΎΠ½Π° ΡΠΎΠ±ΠΎΠΉ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ. ΠΠ±ΡΡΠ½ΠΎ Spnng ΠΎΠΏΠΈΡΡΠ²Π°ΡΡ ΠΊΠ°ΠΊ ΠΎΠ±Π»Π΅Π³ΡΠ΅Π½Π½ΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ Π΄Π»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ JΠ°vΠ°-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π½ΠΎ Ρ ΡΡΠΈΠΌ ΡΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅ΠΌ ΡΠ²ΡΠ·Π°Π½Ρ Π΄Π²Π° ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΡ ΠΌΠΎΠΌΠ΅Π½ΡΠ°.
ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ , Spring ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ Π΄Π»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ Π»ΡΠ±ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° ΡΠ·ΡΠΊΠ΅ Java (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π°Π²ΡΠΎΠ½ΠΎΠΌΠ½ΡΡ , Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Java Enterprise Edition (JEE)) Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΠΌΠ½ΠΎΠ³ΠΈΡ Π΄ΡΡΠ³ΠΈΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌ (ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ Apache Struts, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π° ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ΠΌ ΡΠΎΠ»ΡΠΊΠΎ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ).
ΠΠΎ-Π²ΡΠΎΡΡΡ , Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠ° ΠΎΠ±Π»Π΅Π³ΡΠ΅Π½Π½Π°Ρ Π² Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ ΠΊ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Ρ ΠΊΠ»Π°ΡΡΠΎΠ² ΠΈΠ»ΠΈ ΡΠ°Π·ΠΌΠ΅ΡΡ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π°, Π° Π²ΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΏΡΠΈΠ½ΡΠΈΠΏ Π²ΡΠ΅ΠΉ ΡΠΈΠ»ΠΎΡΠΎΡΠΈΠΈ Spring β ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ Π²ΠΎΠ·Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅. ΠΠ»Π°ΡΡΠΎΡΠΌΠ° Spring ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ±Π»Π΅Π³ΡΠ΅Π½Π½ΠΎΠΉ Π² ΡΠΎΠΌ ΡΠΌΡΡΠ»Π΅, ΡΡΠΎ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π²ΡΠ΅Ρ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ² ΡΠ΄ΡΠ°
Spring Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²Π½ΠΎΡΠΈΡΡ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠ΅ (Π΅ΡΠ»ΠΈ Π²ΠΎΠΎΠ±ΡΠ΅ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ) ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΠΊΠΎΠ΄ ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π° Π΅ΡΠ»ΠΈ Π² ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ Π²Ρ ΡΠ΅ΡΠΈΡΠ΅ ΠΏΡΠ΅ΠΊΡΠ°ΡΠΈΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Spring, ΡΠΎ ΠΈ ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΠΎ.
ΠΠ²ΠΎΠ»ΡΡΠΈΡ Spring Framework
ΠΠ»Π°ΡΡΠΎΡΠΌΠ° Spring Framework Π±Π΅ΡΠ΅Ρ Π½Π°ΡΠ°Π»ΠΎ ΠΈΠ· ΠΊΠ½ΠΈΠ³ΠΈ Π ΠΎΠ΄Π° ΠΠΆΠΎΠ½ΡΠΎΠ½Π° Experl One-on-One: J2EE Design and Development (Wox, 2002 Π³.). ΠΠ° ΠΏΡΠΎΡΠ΅Π΄ΡΠ΅Π΅ Π΄Π΅ΡΡΡΠΈΠ»Π΅ΡΠΈΠ΅ Spring Framework Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π²ΡΡΠΎΡΠ»Π° Π² ΠΏΠ»Π°Π½Π΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ, ΡΠ²ΡΠ·Π°Π½Π½ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΡΠΎ ΡΡΠΎΡΠΎΠ½Ρ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π°. Π’Π΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π½ΠΎΠ²ΡΠΉ ΠΊΡΡΠΏΠ½ΡΠΉ Π²ΡΠΏΡΡΠΊ Spring Framework, ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π²Π·Π³Π»ΡΠ½ΡΡΡ Π½Π° Π²Π°ΠΆΠ½ΡΠ΅ ΡΡΠ΅Π΄ΡΡΠ²Π°, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΡΠ²ΠΈΠ»ΠΈΡΡ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΠΌ Π²ΡΠΏΡΡΠΊΠ΅ Spring, Π² ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΌ ΠΈΡΠΎΠ³Π΅ ΠΏΡΠΈΠ²Π΅Π΄Ρ ΠΊ Π²ΡΡ ΠΎΠ΄Ρ Spring Framework 4.0.
ΠΠ½Π²Π΅ΡΡΠΈΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΈΠ»ΠΈ Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ?
ΠΠ° Π·Π°ΠΌΠ΅ΡΠΊΡ! ΠΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠ΅ΡΠΌΠΈΠ½Π° Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ ΠΏΡΠΈ ΡΡΡΠ»ΠΊΠ΅ Π½Π° ΠΈΠ½Π²Π΅ΡΡΠΈΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π²ΡΠ΅Π³Π΄Π° ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ. Π ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ Spring ΡΡΠΈ ΡΠ΅ΡΠΌΠΈΠ½Ρ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²Π·Π°ΠΈΠΌΠΎΠ·Π°ΠΌΠ΅Π½ΡΠ΅ΠΌΠΎ, ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ Π½Π΅ ΡΠ΅ΡΡΡ ΠΏΡΠΈ ΡΡΠΎΠΌ ΡΠΌΡΡΠ»Π°.
Π ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ Spring Π΄Π΅ΠΉΡΡΠ²ΡΠ΅Ρ Π±ΠΎΠ»ΡΡΠ΅ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ, ΡΠ΅ΠΌ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ ΠΊΠ»Π°ΡΡΠΎΠ² Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠΎ Π²ΡΠ΅ΠΌΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠΌΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡΠΌΠΈ, Π½ΠΎ Π΄Π΅Π»Π°Π΅Ρ ΡΡΠΎ Π³ΠΎΡΠ°Π·Π΄ΠΎ ΠΌΠ΅Π½Π΅Π΅ Π½Π°Π²ΡΠ·ΡΠΈΠ²ΡΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Spring Π΄Π»Ρ DI ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΎ Π²ΡΠ΅Π³ΠΎ Π»ΠΈΡΡ Π½Π° ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠΈ Π²Π½ΡΡΡΠΈ ΡΠ²ΠΎΠΈΡ ΠΊΠ»Π°ΡΡΠΎΠ² ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΡΠΌ ΠΎΠ± ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠΈ, ΠΏΡΠΈΠ½ΡΡΡΠΌ Π΄Π»Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² JavaBean; Π½ΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ ΠΊΠ»Π°ΡΡΠΎΠ², ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΡ Π΄Π»Ρ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ, Π½ΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ ΡΡ Π΅ΠΌ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΎΠ±Π»ΡΠ΄Π°ΡΡΡΡ, Π½Π΅ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½ΠΎ. ΠΠΎ Π²ΡΡΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π΄Π΅Π»Π°Π΅ΡΡΡ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΠ΅ΠΌ DI, ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΡΠΊΡΡΡΠΈΠ΅ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΌ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌ Π²Π°ΡΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² JavaBean, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²Π½Π΅Π΄ΡΡΡΡ Π±ΠΎΠ»ΡΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ.
ΠΠ²ΠΎΠ»ΡΡΠΈΡ Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ
ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΡ Spring ΠΈ Π΄ΡΡΠ³ΠΈΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌ DI, Π·Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π»Π΅Ρ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ ΠΎΠ±ΡΠ΅Π»Π° ΡΠΈΡΠΎΠΊΠΎΠ΅ ΠΏΡΠΈΠ·Π½Π°Π½ΠΈΠ΅ Π² ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² Π½Π° ΡΠ·ΡΠΊΠ΅ Java. Π ΡΠΎ ΠΆΠ΅ Π²ΡΠ΅ΠΌΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Π±ΡΠ»ΠΈ ΡΠ²Π΅ΡΠ΅Π½Ρ, ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ DI Π±ΡΠ»ΠΎ Π½Π°ΠΈΠ»ΡΡΡΠ΅ΠΉ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΎΠΉ Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΈ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ DI Π±ΡΠ»ΠΈ ΡΠ°ΠΊΠΆΠ΅ Ρ ΠΎΡΠΎΡΠΎ ΠΈΠ·ΡΡΠ΅Π½Ρ.
Π JEE 6 Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ JSR-330 ΡΡΠ°Π» ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΉ, Π²Ρ ΠΎΠ΄ΡΡΠΈΡ Π² ΠΏΠΎΠ»Π½ΡΠΉ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ. ΠΠ° ΡΡΠΎ Π²ΡΠ΅ΠΌΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° EJB (Π½Π°ΡΠΈΠ½Π°Ρ Ρ Π²Π΅ΡΡΠΈΠΈ 3.0) ΡΠ°ΠΊΠΆΠ΅ Π±ΡΠ»Π° ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ ΠΌΠΎΠ΄Π΅ΡΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π°; Ρ ΡΠ΅Π»ΡΡ ΡΠΏΡΠΎΡΠ΅Π½ΠΈΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠ°Π·Π½ΠΎΠΎΠ±ΡΠ°Π·Π½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Enterprise JavaBeans Π±ΡΠ»Π° ΠΏΡΠΈΠ½ΡΡΠ° ΠΌΠΎΠ΄Π΅Π»Ρ DI.
ΠΠΎΠ»Π΅Π·Π½ΠΎ Π²Π·Π³Π»ΡΠ½ΡΡΡ Π½Π° ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π°, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ DI ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ Π±ΠΎΠ»Π΅Π΅ ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΡΠΌ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΎΠΌ.
ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΡΠ΅, ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ DI ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π½Π΅ΠΌΠ°Π»ΠΎ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΎΠ½Π° ΠΎΡΠ½ΡΠ΄Ρ Π½Π΅ Π»ΠΈΡΠ΅Π½Π° Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΎΠ². Π ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, DI ΠΌΠΎΠΆΠ΅Ρ Π·Π°ΡΡΡΠ΄Π½ΠΈΡΡ Π²Ρ ΡΡΠ½Π΅Π½ΠΈΠ΅, ΠΊΠ°ΠΊΠ°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΊ ΠΊΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌ ΠΏΡΠΈΠ²ΡΠ·Π°Π½Π°, Π΄Π»Ρ ΡΠ΅Ρ , ΠΊΡΠΎ Π½Π΅ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Ρ ΠΎΡΠΎΡΠΎ ΠΎΡΠΈΠ΅Π½ΡΠΈΡΡΠ΅ΡΡΡ Π² ΠΊΠΎΠ΄Π΅. ΠΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΡΡΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈ ΠΎΡΡΡΡΡΡΠ²ΠΈΠΈ ΠΎΠΏΡΡΠ° ΡΠ°Π±ΠΎΡΡ Ρ DI. Π‘ ΠΎΠ±ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΎΠΏΡΡΠ° ΠΈ ΡΠ»Π΅Π΄ΡΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΡΠΌ ΠΏΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄Π»Ρ DI (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ Π²ΡΠ΅Ρ Π²ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΡΡ ΠΊΠ»Π°ΡΡΠΎΠ² Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΡΠΎΠ²Π½Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² ΠΎΠ΄ΠΈΠ½ ΠΈ ΡΠΎΡ ΠΆΠ΅ ΠΏΠ°ΠΊΠ΅Ρ), ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Π±ΡΠ΄ΡΡ ΡΠΏΠΎΡΠΎΠ±Π½Ρ Π»Π΅Π³ΠΊΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎ ΠΊΠ°ΡΡΠΈΠ½Π΅ Π² ΡΠ΅Π»ΠΎΠΌ. ΠΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΠΏΠΎΡΡΠΈ Π²ΡΠ΅Π³Π΄Π° ΠΏΠ΅ΡΠ΅Π²Π΅ΡΠΈΠ²Π°ΡΡ ΡΡΠΎΡ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΠΊ, ΡΠ΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΠΎ Π½Π΅ΠΌ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΠΎΠΌΠ½ΠΈΡΡ ΠΏΡΠΈ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΠ° ΠΏΡΠ΅Π΄Π΅Π»Π°ΠΌΠΈ Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ
ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Java 8
ΠΠ΅ΡΡΠΈΡ Java 8 ΠΏΡΠΈΠ²Π½ΠΎΡΠΈΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π·Π°Ρ Π²Π°ΡΡΠ²Π°ΡΡΠΈΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΡ Π² Spring Framework 4, Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΌΠΈ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΡΠ²Π»ΡΡΡΡΡ Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΠΌΠ΅ΡΠΎΠ΄Ρ Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°ΠΌΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π° Spring. ΠΡΡΠ³Π°Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ Java 8 Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΠΏΠ΅ΡΠ²ΠΎΠΊΠ»Π°ΡΡΠ½ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ j ava. time (JSR-310) ΠΈ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π½ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ². ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ ΡΡΠΎ Spring Framework 4.0 ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Java 8, ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅ΡΡΡ ΠΎΠ±ΡΠ°ΡΠ½Π°Ρ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ Ρ JDK 6 Update 18. ΠΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ Π½ΠΎΠ²ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΡΠ°ΠΌΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ Π²Π΅ΡΡΠΈΡ Java, ΡΠ°ΠΊΡΡ ΠΊΠ°ΠΊ 7 ΠΈΠ»ΠΈ 8.
ΠΡΠΏΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Spring
ΠΡΠΏΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ (ΠΠΠ) ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠΊΠ²ΠΎΠ·Π½ΠΎΠΉ Π»ΠΎΠ³ΠΈΠΊΠΈ, Ρ.Π΅. Π»ΠΎΠ³ΠΈΠΊΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΊ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Ρ ΡΠ°ΡΡΠ΅ΠΉ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅ ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π΅Π΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎ Π²ΡΠ΅ΠΌΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΠΎΠ΄Ρ ΠΎΠ΄ Spring ΠΊ ΠΠΠ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΡ ΠΏΡΠΎΠΊΡΠΈ Π΄Π»Ρ ΡΠ΅Π»Π΅Π²ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΈ ΠΏΡΠΈΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΊ ΡΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌΡ ΡΠΎΠ²Π΅ΡΡ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΊΠ²ΠΎΠ·Π½ΠΎΠΉ Π»ΠΎΠ³ΠΈΠΊΠΈ. Π‘ΠΎΠ³Π»Π°ΡΠ½ΠΎ ΠΏΡΠΈΡΠΎΠ΄Π΅ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΡ ΠΏΡΠΎΠΊΡΠΈ JDK, ΡΠ΅Π»Π΅Π²ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²ΡΠ²Π°ΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, ΠΎΠ±ΡΡΠ²Π»ΡΡΡΠΈΠΉ ΠΌΠ΅ΡΠΎΠ΄, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ ΡΠΎΠ²Π΅Ρ ΠΠΠ.
ΠΡΠ΅ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΎΠΉ ΠΠΠ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΎΠ΅ΠΊΡ Eclipse AspectJ (www.eclipse.org/aspectj), ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π±ΠΎΠ»Π΅Π΅ ΠΌΠΎΡΠ½ΡΠ΅ ΡΡΠ΅Π΄ΡΡΠ²Π°, Π²ΠΊΠ»ΡΡΠ°Ρ ΠΊΠΎΠ½ΡΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², Π·Π°Π³ΡΡΠ·ΠΊΡ ΠΊΠ»Π°ΡΡΠΎΠ² ΠΈ Π±ΠΎΠ»ΡΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΡ ΡΠΊΠ²ΠΎΠ·Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ.
Π₯ΠΎΡΠΎΡΠ°Ρ Π½ΠΎΠ²ΠΎΡΡΡ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ², ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΠΈΡ Spring ΠΈ ΠΠΠ, Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Π½Π°ΡΠΈΠ½Π°Ρ Ρ Π²Π΅ΡΡΠΈΠΈ 2.0, Π² Spring ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΠ΅ΡΠ½Π°Ρ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ AspectJ.
ΠΠΈΠΆΠ΅ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠ΅ΠΉ.
ΠΠ° Π·Π°ΠΌΠ΅ΡΠΊΡ! ΠΠ°ΡΠΈΠ½Π°Ρ Ρ Π²Π΅ΡΡΠΈΠΈ Spring Framework 3.2, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π°Π½Π½ΠΎΡΠ°ΡΠΈΠΈ @AspectJ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²ΠΊΠ»ΡΡΠ΅Π½Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ Java Config.
ΠΠ±Π° Π²ΠΈΠ΄Π° ΠΠΠ ΠΈΠΌΠ΅ΡΡ ΡΠ²ΠΎΠΈ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΈ Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π² ΠΠΠ ΠΈΠ· Spring Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π΄Π»Ρ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΠ΅Π½ΠΈΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΡΠΊΠ²ΠΎΠ·Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ. ΠΠ΄Π½Π°ΠΊΠΎ ΠΏΡΠΈ Π½Π°Π»ΠΈΡΠΈΠΈ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ AspectJ, ΠΏΡΠΈΡΠ΅ΠΌ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Spring ΠΌΠΎΠΆΠ½ΠΎ ΡΠΌΠ΅ΡΠΈΠ²Π°ΡΡ ΠΎΠ±Π° Π²ΠΈΠ΄Π° ΠΠΠ.
ΠΠΠ ΠΈΠΌΠ΅Π΅Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. Π’ΠΈΠΏΠΈΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅, Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΠ΅ΠΌΠΎΠ΅ Π²ΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅ ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² ΠΠΠ, ΡΠ²ΡΠ·Π°Π½ΠΎ Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π²ΠΈΠ΄Π° ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ, Π½ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΠΠ Π²ΡΡ ΠΎΠ΄ΡΡ Π΄Π°Π»Π΅ΠΊΠΎ Π·Π° ΡΠ°ΠΌΠΊΠΈ ΡΡΠΈΠ²ΠΈΠ°Π»ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ. ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π²Π½ΡΡΡΠΈ ΡΠ°ΠΌΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ Spring Framework ΠΠΠ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΌΠ½ΠΎΠ³ΠΈΡ ΡΠ΅Π»Π΅ΠΉ, Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, ΠΏΡΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΠΌΠΈ.
Π―Π·ΡΠΊ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Spring (SpEL)
ΠΡΠΎΠ²Π΅ΡΠΊΠ° Π΄ΠΎΡΡΠΎΠ²Π΅ΡΠ½ΠΎΡΡΠΈ Π² Spring
ΠΠ»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΠΊΠ°Π·Π°Π½Π½ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π² Spring ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅ΡΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ ΠΠ L- ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π΄ΠΎΡΡΠΎΠ²Π΅ΡΠ½ΠΎΡΡΠΈ Π² Π²ΠΈΠ΄Π΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Validator. ΠΡΠΎΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΡΠΎΡΡΠΎΠΉ ΠΈ Π»Π°ΠΊΠΎΠ½ΠΈΡΠ½ΡΠΉ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΠ½ΠΊΠ°ΠΏΡΡΠ»ΠΈΡΠΎΠ²Π°ΡΡ Π»ΠΎΠ³ΠΈΠΊΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π΄ΠΎΡΡΠΎΠ²Π΅ΡΠ½ΠΎΡΡΠΈ Π² ΠΊΠ»Π°ΡΡ, ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΡΠΉ Π·Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΡ Π΄ΠΎΡΡΠΎΠ²Π΅ΡΠ½ΠΎΡΡΠΈ ΡΠ΅Π»Π΅Π²ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°. Π Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ ΡΠ΅Π»Π΅Π²ΠΎΠΌΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΌΠ΅ΡΠΎΠ΄ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π΄ΠΎΡΡΠΎΠ²Π΅ΡΠ½ΠΎΡΡΠΈ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡ Errors, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠ±ΠΎΡΠ° Π»ΡΠ±ΡΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡΠΈΡ ΠΎΡΠΈΠ±ΠΎΠΊ ΠΏΡΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ΅.
Π Spring ΡΠ°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅Π΅ΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΡΠ»ΡΠΆΠ΅Π±Π½ΡΠΉ ΠΊΠ»Π°ΡΡ ValidationUtils, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΡΠ΄ΠΎΠ±Π½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ Π΄Π»Ρ Π²ΡΠ·ΠΎΠ²Π° Π΄ΡΡΠ³ΠΈΡ Π²Π°Π»ΠΈΠ΄Π°ΡΠΎΡΠΎΠ², ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π½Π°Π»ΠΈΡΠΈΡ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π²ΡΠΎΠ΄Π΅ ΠΏΡΡΡΡΡ ΡΡΡΠΎΠΊ ΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ°Ρ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ Errors.
ΠΠ°ΡΠΈΠ½Π°Ρ Ρ Π²Π΅ΡΡΠΈΠΈ 3.0, Π² Spring Π΄ΠΎΡΡΡΠΏΠ½Π° Π²ΡΡΡΠΎΠ΅Π½Π½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ JSR-303. ΠΠ»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠΎΠ³ΠΎ API-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ ΠΎΠ±ΡΡΠ²ΠΈΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ LocalValidatorFactoryBean ΠΈ Π²Π½Π΅Π΄ΡΠΈΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Validator Π² Π»ΡΠ±ΡΠ΅ Π±ΠΈΠ½Ρ, ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΡΠ΅ Spring. ΠΠ»Π°ΡΡΠΎΡΠΌΠ° Spring Π½Π°ΠΉΠ΄Π΅Ρ Π»Π΅ΠΆΠ°ΡΡΡ Π² ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Spring ΡΠ½Π°ΡΠ°Π»Π° ΠΈΡΠ΅Ρ Hibemate Validator (hibernate. org /subproj ects/ validator), ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ JSR-303. ΠΠ½ΠΎΠ³ΠΈΠ΅ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, JSF 2 ΠΈ Google Web Toolkit), Π²ΠΊΠ»ΡΡΠ°Ρ Spring MVC, ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π΄ΠΎΡΡΠΎΠ²Π΅ΡΠ½ΠΎΡΡΠΈ JSR-303 Π² ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅. ΠΡΠΎΡΠ»ΠΈ ΡΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½Π°, ΠΊΠΎΠ³Π΄Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΠ»ΠΎΡΡ ΠΏΠΈΡΠ°ΡΡ ΠΎΠ΄Π½Ρ ΠΈ ΡΡ ΠΆΠ΅ Π»ΠΎΠ³ΠΈΠΊΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π΄ΠΎΡΡΠΎΠ²Π΅ΡΠ½ΠΎΡΡΠΈ ΠΊΠ°ΠΊ Π² ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅, ΡΠ°ΠΊ ΠΈ Π½Π° ΡΡΠΎΠ²Π½Π΅ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½ΡΡ .
ΠΠ° Π·Π°ΠΌΠ΅ΡΠΊΡ! ΠΠ°ΡΠΈΠ½Π°Ρ Ρ Π²Π΅ΡΡΠΈΠΈ Spring Framework 4.0, ΠΏΠΎΠΌΠ΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ Π²Π΅ΡΡΠΈΡ 1.1 ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Bean Validation API (JSR-349).
ΠΠΎΡΡΡΠΏ ΠΊ Π΄Π°Π½Π½ΡΠΌ Π² Spring
ΠΠ° Π·Π°ΠΌΠ΅ΡΠΊΡ! ΠΠ°ΡΠΈΠ½Π°Ρ Ρ Π²Π΅ΡΡΠΈΠΈ Spring Framework 4.0, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° iBATIS Π±ΡΠ»Π° ΡΠ΄Π°Π»Π΅Π½Π°. ΠΡΠΎΠ΅ΠΊΡ MyBatis-Spring ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΎΠΉ Spring; Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎ Π½Π΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ http://mybatis.github.io/spring/.
ΠΠ΄Π½Π°ΠΊΠΎ ΠΏΠΎ ΠΏΡΠΈΡΠΈΠ½Π΅ Π±Π΅Π·ΡΠ΄Π΅ΡΠΆΠ½ΠΎΠ³ΠΎ ΡΠΎΡΡΠ° ΠΠ½ΡΠ΅ΡΠ½Π΅ΡΠ° ΠΈ ΠΎΠ±Π»Π°ΡΠ½ΡΡ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ Π² ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π»Π΅Ρ, ΠΏΠΎΠΌΠΈΠΌΠΎ ΡΠ΅Π»ΡΡΠΈΠΎΠ½Π½ΡΡ Π±ΡΠ»ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΡΡΠ³ΠΈΡ Π±Π°Π· Π΄Π°Π½Π½ΡΡ «ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ». ΠΡΠΈΠΌΠ΅ΡΠ°ΠΌΠΈ ΠΌΠΎΠ³ΡΡ ΡΠ»ΡΠΆΠΈΡΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ , ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΠ΅ Π½Π° ΠΏΠ°ΡΠ°Ρ «ΠΊΠ»ΡΡ-Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅» ΠΈ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠ΅ Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π±ΠΎΠ»ΡΡΠΈΡ ΠΎΠ±ΡΠ΅ΠΌΠΎΠ² Π΄Π°Π½Π½ΡΡ (Π² ΠΎΠ±ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ Π½Π° Π½ΠΈΡ ΡΡΡΠ»Π°ΡΡΡΡ ΠΊΠ°ΠΊ Π½Π° NoSQL), Π³ΡΠ°ΡΠΎΠ²ΡΠ΅ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΈ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ½ΡΠ΅ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ . Π§ΡΠΎΠ±Ρ ΠΏΠΎΠΌΠΎΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ Π² ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ΅ ΡΠ°ΠΊΠΈΡ Π±Π°Π· Π΄Π°Π½Π½ΡΡ ΠΈ Π½Π΅ ΡΡΠ»ΠΎΠΆΠ½ΡΡΡ ΠΌΠΎΠ΄Π΅Π»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π΄Π°Π½Π½ΡΠΌ Spritag, Π±ΡΠ» ΡΠΎΠ·Π΄Π°Π½ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Spring Data (http: //proj ects. spring. io/ spring-data). ΠΡΠΎΡ ΠΏΡΠΎΠ΅ΠΊΡ Π² Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ Π±ΡΠ» ΡΠ°Π·Π΄Π΅Π»Π΅Π½ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ Ρ ΡΠ΅Π»ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ Π±ΠΎΠ»Π΅Π΅ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΏΠΎ Π΄ΠΎΡΡΡΠΏΡ ΠΊ Π΄Π°Π½Π½ΡΠΌ.
ΠΠ° Π·Π°ΠΌΠ΅ΡΠΊΡ! ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π½Π΅ΡΠ΅Π»ΡΡΠΈΠΎΠ½Π½ΡΡ Π±Π°Π· Π΄Π°Π½Π½ΡΡ Π² Spring Π² ΠΌΠΎΠ΅ΠΌ Π±Π»ΠΎΠ³Π΅ Π½Π΅ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΡΡΡ. ΠΠ»Ρ ΡΠ΅Ρ , ΠΊΡΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΠ΅ΡΡΡ ΡΡΠΎΠΉ ΡΠ΅ΠΌΠΎΠΉ, ΡΠΏΠΎΠΌΡΠ½ΡΡΡΠΉ ΡΠ°Π½Π΅Π΅ ΠΏΡΠΎΠ΅ΠΊΡ Spring Data Π±ΡΠ΄Π΅Ρ Ρ ΠΎΡΠΎΡΠ΅ΠΉ ΠΎΡΠΏΡΠ°Π²Π½ΠΎΠΉ ΡΠΎΡΠΊΠΎΠΉ. ΠΠ° ΡΡΡΠ°Π½ΠΈΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΡΠΊΠ°Π·Π°Π½Ρ Π½Π΅ΡΠ΅Π»ΡΡΠΈΠΎΠ½Π½ΡΠ΅ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ , ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ½ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Ρ ΡΡΡΠ»ΠΊΠΈ Π½Π° Π΄ΠΎΠΌΠ°ΡΠ½ΠΈΠ΅ ΡΡΡΠ°Π½ΠΈΡΡ Π΄Π»Ρ ΡΡΠΈΡ Π±Π°Π· Π΄Π°Π½Π½ΡΡ .
ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° JDBC Π² Spring Π΄Π΅Π»Π°Π΅Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΠΉ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ JDBC Π²ΠΏΠΎΠ»Π½Π΅ ΡΠ΅Π°Π»ΡΠ½ΡΠΌ, Π΄Π°ΠΆΠ΅ Π² ΠΎΡΠΎΠ±ΠΎ ΡΠ»ΠΎΠΆΠ½ΡΡ ΡΠ»ΡΡΠ°ΡΡ . ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Hibemate, JDO ΠΈ JPA Π΅ΡΠ΅ Π±ΠΎΠ»Π΅Π΅ ΡΠΏΡΠΎΡΠ°Π΅Ρ ΠΈ Π±Π΅Π· ΡΠΎΠ³ΠΎ ΠΏΡΠΎΡΡΡΠ΅ ΠΠ Π’-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ, ΡΠΎΠΊΡΠ°ΡΠ°Ρ Π·Π°ΡΡΠ°ΡΡ Π½Π° ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΎ ΡΡΠΎΡΠΎΠ½Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ². ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ API-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² Spring Π΄Π»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π΄Π°Π½Π½ΡΠΌ ΡΠ΅ΡΠ΅Π· Π»ΡΠ±ΠΎΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΠΈΠΌΠ΅Π΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π²ΡΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° Π²Π΅Π»ΠΈΠΊΠΎΠ»Π΅ΠΏΠ½ΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ, ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅ΠΌΠΎΠΉ Spring.
ΠΠ΄Π½ΠΈΠΌ ΠΈΠ· ΡΠ°ΠΌΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΡΡ ΡΡΠ΅Π΄ΡΡΠ² Spring ΡΠ²Π»ΡΠ΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π΄Π°Π½Π½ΡΠΌ Π² ΡΠ°ΠΌΠΊΠ°Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½ΡΡ Oracle, Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Hibemate Π΄Π»Ρ Π±ΠΎΠ»ΡΡΠ΅ΠΉ ΡΠ°ΡΡΠΈ Π»ΠΎΠ³ΠΈΠΊΠΈ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π΄Π°Π½Π½ΡΠΌ. ΠΠ΄Π½Π°ΠΊΠΎ Π΅ΡΠ»ΠΈ ΡΡΠ΅Π±ΡΡΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΡΠ΅ Π΄Π»Ρ Oracle ΡΡΠ΅Π΄ΡΡΠ²Π°, ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΡΡ ΡΠ°ΡΡΡ ΡΡΠΎΠ²Π½Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π΄Π°Π½Π½ΡΠΌ Ρ ΠΏΠΎΠΌΠΎΡΡΡ API-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² JDBC, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΡ Spring.
ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Object to XML Mapping (ΠΠ₯Π) Π² Spring
ΠΠ½ΠΎΠ³ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°ΡΡΡΡ ΠΈΠ»ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ ΡΠ»ΡΠΆΠ±Ρ Π΄Π»Ρ Π΄ΡΡΠ³ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΠ΄Π½ΠΈΠΌ ΠΈΠ· ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ±ΠΌΠ΅Π½ Π΄Π°Π½Π½ΡΠΌΠΈ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌΠΈ, Π»ΠΈΠ±ΠΎ Π½Π° ΡΠ΅^Π»ΡΡΠ½ΠΎΠΉ ΠΎΡΠ½ΠΎΠ²Π΅, Π»ΠΈΠ±ΠΎ Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. ΠΠ°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΠΌ ΡΠΎΡΠΌΠ°ΡΠΎΠΌ Π΄Π°Π½Π½ΡΡ ΡΡΠΈΡΠ°Π΅ΡΡΡ XML. Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ Π² ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° JavaBean Π² ΡΠΎΡΠΌΠ°Ρ XML ΠΈ Π½Π°ΠΎΠ±ΠΎΡΠΎΡ.
ΠΠ»Π°ΡΡΠΎΡΠΌΠ° Spring ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΏΡΠΈΠ½ΡΡΡΡ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Java Π² XML ΠΈ, ΠΊΠ°ΠΊ ΠΎΠ±ΡΡΠ½ΠΎ, ΡΡΡΡΠ°Π½ΡΠ΅Ρ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΡΡ Π² Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎΠΉ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠ΅ ΠΊ Π»ΡΠ±ΠΎΠΉ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ. Spring ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΎΠ±ΡΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ Π΄Π»Ρ ΠΌΠ°ΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ (ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² JavaBean Π² XML) ΠΈ Π΄Π΅ΠΌΠ°ΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ (ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ XML Π² ΠΎΠ±ΡΠ΅ΠΊΡΡ Java) Π΄Π»Ρ Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ Π² Π»ΡΠ±ΡΠ΅ Π±ΠΈΠ½Ρ Spring. ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ ΡΠ°ΠΊΠΈΠ΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΠΊΠ°ΠΊ Java Architecture for XML Binding (JAXB), Castor, XStream, JiBX ΠΈ XMLBeans.
Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΠΌΠΈ
ΠΠ»Π°ΡΡΠΎΡΠΌΠ° Spring ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΡΠ΄ΠΎΠ±Π½ΡΠΉ ΡΡΠΎΠ²Π΅Π½Ρ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΠΈ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΠΈ Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠ²Π½ΡΠΉ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π½Π°Π΄ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΠΌΠΈ. ΠΠ° ΡΡΠ΅Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΡΠΎΠ²Π½Ρ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΠΈ Π΄Π»Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ ΡΠΏΡΠΎΡΠ°Π΅ΡΡΡ ΡΠΌΠ΅Π½Π° Π»Π΅ΠΆΠ°ΡΠ΅Π³ΠΎ Π² ΠΎΡΠ½ΠΎΠ²Π΅ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ ΠΈ Π΄ΠΈΡΠΏΠ΅ΡΡΠ΅ΡΠΎΠ² ΡΠ΅ΡΡΡΡΠΎΠ². ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΡΠ°ΡΡ Ρ ΠΏΡΠΎΡΡΡΡ , Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ , ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΡΡ Π΄Π»Ρ ΡΠ΅ΡΡΡΡΠ° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ ΠΈ Π·Π°ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ ΠΊ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠΌ, ΠΌΡΠ»ΡΡΠΈΡΠ΅ΡΡΡΡΠ½ΡΠΌ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΠΌ, Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡ ΡΠΆΠ΅ Π½Π°ΠΏΠΈΡΠ°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.
Π£ΠΏΡΠΎΡΠ΅Π½ΠΈΠ΅ ΠΈ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ JEE
ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΠ°ΡΡΡΡΠ΅ΠΌΡ ΠΏΡΠΈΠ½ΡΡΠΈΡ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡ 01, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ Spring, ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΡΠ΅ΡΠΈΠ»ΠΈ ΡΡΡΠΎΠΈΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ DI Π΄Π»Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π° EJB ΠΈΠ· JEE. Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²ΠΎ JCP ΡΠ°ΠΊΠΆΠ΅ ΡΡΠΎΠ»ΠΊΠ½ΡΠ»ΠΎΡΡ ΡΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡΡ EJB. ΠΠ°ΡΠΈΠ½Π°Ρ Ρ Π²Π΅ΡΡΠΈΠΈ 3.0 ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ EJB, Π΄ΠΎΡΡΡΠΏΠ½ΡΠΉ ΠΠ ^ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π±ΡΠ» ΡΠΏΡΠΎΡΠ΅Π½ ΠΈ ΡΠ΅ΠΏΠ΅ΡΡ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ DI.
ΠΠ»Ρ Π»ΡΠ±ΡΡ ΡΠ΅ΡΡΡΡΠΎΠ², ΡΠΎΡ ΡΠ°Π½Π΅Π½Π½ΡΡ Π² ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π΄ΠΎΡΡΡΠΏΠ½ΠΎ ΡΠ΅ΡΠ΅Π· JNDI, ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° Spring ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΠ·Π±Π°Π²ΠΈΡΡΡΡ ΠΎΡ ΡΠ»ΠΎΠΆΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΏΠΎΠΈΡΠΊΠ° ΠΈ Π²Π½Π΅Π΄ΡΡΡΡ ΡΠ΅ΡΡΡΡΡ, ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΡΠ΅ JNDI, ΠΊΠ°ΠΊ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ Π² Π΄ΡΡΠ³ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠΎΠ±ΠΎΡΠ½ΠΎΠ³ΠΎ ΡΡΡΠ΅ΠΊΡΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π½Π΅ ΠΏΡΠΈΠ²ΡΠ·Π°Π½Π½ΡΠΌ ΠΊ JNDI, ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Ρ ΡΡΠ΅ΠΏΠ΅Π½Ρ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡΠ°ΡΠ½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠ΄Π° Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ.
MVC Π½Π° Π²Π΅Π±-ΡΡΠΎΠ²Π½Π΅
Π₯ΠΎΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° Spring ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π² Π»ΡΠ±ΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡ , ΠΎΡ Π½Π°ΡΡΠΎΠ»ΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ Π΄ΠΎ Π²Π΅Π±, ΠΎΠ½Π° ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΡΠΈΡΠΎΠΊΠΈΠΉ ΡΠΏΠ΅ΠΊΡΡ ΠΊΠ»Π°ΡΡΠΎΠ², ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΡ Π΄Π»Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ Spring, Π²Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΠ΅ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΡ Π³ΠΈΠ±ΠΊΠΎΡΡΡ ΠΏΡΠΈ Π²ΡΠ±ΠΎΡΠ΅ ΡΠΏΠΎΡΠΎΠ±Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Π΄Π»Ρ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΠ°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠΌ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΡΠ²Π»ΡΠ΅ΡΡΡ MVC. Π ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ Π²Π΅ΡΡΠΈΡΡ Spring ΠΏΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΠΎ ΡΠ°Π·Π²ΠΈΠ»Π°ΡΡ ΠΎΡ ΠΏΡΠΎΡΡΠΎΠΉ Π²Π΅Π±-ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ Π΄ΠΎ ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ MVC.
ΠΡΠ΅ΠΆΠ΄Π΅ Π²ΡΠ΅Π³ΠΎ, ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΎΡΠΌΠ΅ΡΠΈΡΡ ΠΎΠ±ΡΠΈΡΠ½ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠΉ Π² Spring MVC. Π Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ΅ JSP ΠΈ JSTL (Java Standard Tag Library β ΡΡΠ°Π½Π΄Π°ΡΡΠ½Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΠΎΠ² Java), ΠΊΠΎΡΠΎΡΠ°Ρ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΡΠ΅ΠΏΠ»Π΅Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΠΌΠΈ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΠΎΠ² Spring, Π² ΡΠ°ΡΠΏΠΎΡΡΠΆΠ΅Π½ΠΈΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΠΈΠΌΠ΅Π΅ΡΡΡ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°Π½Π½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Apache Velocity, FreeMarker, Apache Tiles ΠΈ XSLT. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π½Π°Π±ΠΎΡ Π±Π°Π·ΠΎΠ²ΡΡ ΠΊΠ»Π°ΡΡΠΎΠ² ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΏΡΠΎΡΠ°ΡΡ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌ Π²ΡΠ²ΠΎΠ΄Π° Microsoft Excel, PDF ΠΈ JasperReports.
ΠΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ ΡΠ»ΡΡΠ°ΡΡ Π²Ρ ΡΠΎΡΡΠ΅ΡΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ Spring MVC Π²ΠΏΠΎΠ»Π½Π΅ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎΠΉ Π΄Π»Ρ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΠ΅Π½ΠΈΡ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΡΠ΅ΠΉ Π²Π°ΡΠΈΡ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΠ΄Π½Π°ΠΊΠΎ Spring ΠΌΠΎΠΆΠ΅Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°ΡΡΡΡ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠΌΠΈ Π²Π΅Π±-ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΠΌΠΈ, ΡΠ°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ Struts, JSF, Atmosphere, Google Wfeb Toolkit (GWT) ΠΈ Ρ.Π΄.
Π ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ Π³ΠΎΠ΄Ρ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ Π²Π΅Π±-ΠΏΠ»Π°ΡΡΠΎΡΠΌ ΡΡΡΠ΅ΠΌΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ°Π·Π²ΠΈΠ²Π°Π»Π°ΡΡ. ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ ΡΡΠ΅Π±ΠΎΠ²Π°Π»ΠΈ Π±ΠΎΠ»Π΅Π΅ Π±ΡΡΡΡΠΎΠ³ΠΎ ΠΎΡΠΊΠ»ΠΈΠΊΠ° ΠΈ Π²ΡΡΠΎΠΊΠΎΠΉ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ, ΠΈ ΡΡΠΎ ΠΏΡΠΈΠ²Π΅Π»ΠΎ ΠΊ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡ Ajax β ΡΠΈΡΠΎΠΊΠΎ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΠΎΠΉ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π½Π°ΡΡΡΠ΅Π½Π½ΡΡ ΠΠ½ΡΠ΅ΡΠ½Π΅Ρ-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ (Rjch Internet Application β RIA). Π‘ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ, ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ ΡΠ°ΠΊΠΆΠ΅ Ρ ΠΎΡΡΡ ΠΈΠΌΠ΅ΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠ²ΠΎΠΈΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌ Π½Π° Π»ΡΠ±ΠΎΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²Π΅, Π²ΠΊΠ»ΡΡΠ°Ρ ΡΠΌΠ°ΡΡΡΠΎΠ½Ρ ΠΈ ΠΏΠ»Π°Π½ΡΠ΅ΡΡ. ΠΡΠΎ ΠΏΠΎΡΠΎΠΆΠ΄Π°Π΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ Π² Π²Π΅Π±ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°Ρ , ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ HTML5, JavaScript ΠΈ CSS3.
ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° WebSocket
ΠΠ°ΡΠΈΠ½Π°Ρ Ρ Π²Π΅ΡΡΠΈΠΈ Spring Framework 4.0, Π΄ΠΎΡΡΡΠΏΠ½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Java API Π΄Π»Ρ WebSocket (JSR-356). Π WfebSocket ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ API-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠΌ ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ, ΠΎΠ±ΡΡΠ½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π² Π²Π΅Π±-Π±ΡΠ°ΡΠ·Π΅ΡΠ°Ρ ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ°Ρ . Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π² ΡΡΠΈΠ»Π΅ WfebSocket ΠΎΡΠΊΡΡΠ²Π°Π΅Ρ ΠΏΡΠΎΡΡΠΎΡ Π΄Π»Ρ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΡ Π΄Π²ΡΡ ΡΡΠΎΡΠΎΠ½Π½ΠΈΡ ΠΊΠΎΠΌΠΌΡΠ½ΠΈΠΊΠ°ΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΄Π΅Π»Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΌ ΠΎΠ±ΠΌΠ΅Π½ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π΄Π»Ρ Π±ΡΡΡΡΠΎΡΠ΅Π°Π³ΠΈΡΡΡΡΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠ΄Π°Π»Π΅Π½Π½ΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ
ΠΠΎΡΡΡΠΏ ΠΈΠ»ΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΠ΄Π°Π»Π΅Π½Π½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Π² Java Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π±ΡΠ»ΠΎ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠ°Π±ΠΎΡΠΎΠΉ. ΠΠΌΠ΅Ρ Π΄Π΅Π»ΠΎ Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΎΠΉ Spring, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π² ΡΠ²ΠΎΠ΅ ΡΠ°ΡΠΏΠΎΡΡΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠΈΡΠ½ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° ΡΠ΄Π°Π»Π΅Π½Π½ΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ Π΄Π»Ρ Π±ΡΡΡΡΠΎΠ³ΠΎ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΌ ΡΠ»ΡΠΆΠ±Π°ΠΌ.
ΠΠ»Π°ΡΡΠΎΡΠΌΠ° Spring ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΡΠ°Π·Π½ΠΎΠΎΠ±ΡΠ°Π·Π½ΡΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΎΠ² ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ°, Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ RMI (Java Remote Method Invocation β ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΉ Π²ΡΠ·ΠΎΠ² ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Java), JAX-WS, ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Ρ Hessian ΠΈ Burlap ΠΎΡ Caucho, JMS, AMQP (Advanced Message Queuing Protocol β ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΡΠΉ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» ΠΎΡΠ΅ΡΠ΅Π΄ΠΈΠ·Π°ΡΠΈΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ) ΠΈ REST. Π Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ ΡΡΠΈΠΌ ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΌ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π°ΠΌ, Spring ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ Π²ΡΠ·ΡΠ²Π°ΡΡΠΈΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΠ’Π’Π , Π±Π°Π·ΠΈΡΡΡΡΠΈΠΉΡΡ Π½Π° ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Java. ΠΠ° ΡΡΠ΅Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΡΠΎΠΊΡΠΈ, ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅ΠΌΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΎΠΉ Spring, ΠΏΡΠΎΠΊΡΠΈ Π΄Π»Ρ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΡΡΡΡΠ° Π²Π½Π΅Π΄ΡΡΠ΅ΡΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ Π² Π²Π°ΡΠΈ ΠΊΠ»Π°ΡΡΡ, ΡΡΠΎ ΡΡΡΡΠ°Π½ΡΠ΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΊ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΈ ΡΠΎΠΊΡΠ°ΡΠ°Π΅Ρ ΠΎΠ±ΡΠ΅ΠΌ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡΠΎΡΡΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π½Π°ΠΏΠΈΡΠ°Π½ Π΄Π»Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΡΡΡ
ΠΡΠΏΡΠ°Π²ΠΊΠ° ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΡΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΈΠΏΠΈΡΠ½ΡΠΌ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π΄Π»Ρ ΠΌΠ½ΠΎΠ³ΠΈΡ Π²ΠΈΠ΄ΠΎΠ² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ Π² Spring Framework. ΠΠ»Π°ΡΡΠΎΡΠΌΠ° Spring ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΏΡΠΎΡΠ΅Π½Π½ΡΠΉ API-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π΄Π»Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΡΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ Ρ ΠΎΡΠΎΡΠΎ ΡΠΎΠ³Π»Π°ΡΡΠ΅ΡΡΡ Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠΌΠΈ Spring DI. Π Spring ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ JavaMail API.
Spring ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅-ΠΏΡΠΎΡΠΎΡΠΈΠΏ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ΅ DI ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΡΠ½ΠΎΠ²Ρ Π΄Π»Ρ Π²ΡΠ΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΡΡ ΠΈΠ· ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΡΠΎ ΡΠΏΡΠΎΡΠ°Π΅Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΏΠΎΡΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ ΡΠ΅ΠΌΠ° ΠΈ Π°Π΄ΡΠ΅Ρ ΠΎΡΠΏΡΠ°Π²ΠΈΡΠ΅Π»Ρ. ΠΠ΄ΠΎΠ±Π°Π²ΠΎΠΊ Π΄Π»Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠ΅Π»Π° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° Spring ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΡΠ΅ΡΡΡ Ρ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ°ΠΌΠΈ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ² Π²ΡΠΎΠ΄Π΅ Apache Velocity, ΠΊΠΎΡΠΎΡΡΠ΅ Π΄Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²ΡΠ½Π΅ΡΡΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Π·Π° ΠΏΡΠ΅Π΄Π΅Π»Ρ JΠ°vΠ°-ΠΊΠΎΠ΄Π°.
ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π·Π°Π΄Π°Π½ΠΈΠΉ
ΠΠ»Π°ΡΡΠΎΡΠΌΠ° Spring ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΡΠ΅Ρ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡΠΌ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π° ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΡ ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π². ΠΠ°Π΄Π°ΡΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π·Π°ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π½Π° Π½Π° Π·Π°ΠΏΡΡΠΊ Π»ΠΈΠ±ΠΎ Ρ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»ΠΎΠΌ, Π»ΠΈΠ±ΠΎ Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ Π΄Π»Ρ Unix-ΡΡΠΈΠ»ΠΈΡΡ cron.
Π‘ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ, Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π·Π°Π΄Π°Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° Spring ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΡΠ΅ΡΡΡ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΠΌΠΈ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΡΡΠ΅Π΄Π΅ ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Spring ΠΌΠΎΠΆΠ΅Ρ Π΄Π΅Π»Π΅Π³ΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅ CommonJ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΈΠΌΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ°ΠΌΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΠ»Ρ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π·Π°Π΄Π°Ρ Spring ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ, Π² ΡΠΈΡΠ»Π΅ ΠΊΠΎΡΠΎΡΡΡ JDK Timer API ΠΈ Quartz, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΠΈΠ΅ ΡΠΎΠ±ΠΎΠΉ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ.
ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΡ ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π²
ΠΠ°ΡΠΈΠ½Π°Ρ Ρ JDK 6, Π² Java ΠΏΠΎΡΠ²ΠΈΠ»Π°ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ·ΡΠΊΠΎΠ², ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΡΡΠ΅Π½Π°ΡΠΈΠΈ, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠ΅ Π½Π° Π΄ΡΡΠ³ΠΈΡ ΡΠ·ΡΠΊΠ°Ρ , Π² ΡΡΠ΅Π΄Π΅ JVM. ΠΡΠΈΠΌΠ΅ΡΠ°ΠΌΠΈ ΡΠ°ΠΊΠΈΡ ΡΠ·ΡΠΊΠΎΠ² ΠΌΠΎΠ³ΡΡ ΡΠ»ΡΠΆΠΈΡΡ Groovy, JRuby ΠΈ JavaScript.
ΠΠ»Π°ΡΡΠΎΡΠΌΠ° Spring ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΡ ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π² Π² Spring-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Spring-Π±ΠΈΠ½, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠΉ Π½Π° ΡΠ·ΡΠΊΠ΅ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΡ ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π², ΠΈ Π²Π½Π΅Π΄ΡΠΈΡΡ Π΅Π³ΠΎ Π² Π½ΡΠΆΠ½ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ JavaBean. Π ΡΠΈΡΠ»ΠΎ ΡΠ·ΡΠΊΠΎΠ² Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΡ ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π², ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΡ Spring, Π²Ρ ΠΎΠ΄ΡΡ Groovy, JRuby ΠΈ BeanShell.
Π£ΠΏΡΠΎΡΠ΅Π½Π½Π°Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΎΠ±Π»Π°ΡΡΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Spring Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΡΠΎΠΊΡΠ°ΡΠΈΡΡ ΠΎΠ±ΡΠ΅ΠΌ ΠΏΠΎΠ²ΡΠΎΡΡΡΡΠ΅Π³ΠΎΡΡ ΡΡΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° β ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ. ΠΡΠ½ΠΎΠ²ΠΎΠΉ ΡΠΈΠ»ΠΎΡΠΎΡΠΈΠΈ Spring Π² ΡΡΠΎΠΌ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎΡ ΡΠ°ΠΊΡ, ΡΡΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌΡΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π² Java ΡΡΠ΅Π·ΠΌΠ΅ΡΠ½ΠΎ, ΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΡΠΈΠ½ΡΠΆΠ΄Π°ΡΡ ΠΊ ΠΏΠ΅ΡΠ΅Ρ Π²Π°ΡΡ Π»ΡΠ±ΠΎΠ³ΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ, ΠΏΠΎΡΠ»Π΅ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π²ΡΡΠ΄ Π»ΠΈ Π±ΡΠ΄Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΡΠΎΠ²Π΅ΡΡΠΈ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ β ΠΌΡ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΡΠ°Π·Π΄Π΅Π»ΡΠ΅ΠΌ ΡΠ°ΠΊΡΡ ΡΠΎΡΠΊΡ Π·ΡΠ΅Π½ΠΈΡ.
Π Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ ΡΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Ρ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ ΡΠΎΠΊΡΠ°ΡΠΈΡΡ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΡΡ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈ ΠΊΠΎΠ΄Π° Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ ΡΠ°ΠΊΠΈΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°Ρ ΠΏΡΠΈΠ½ΡΡΠΎ ΠΏΡΠΈΠ΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ, Π½ΠΎ ΠΈΡΠΊΡΡΡΡΠ²Π΅Π½Π½ΠΎ ΡΠ½ΠΈΠΆΠ°ΡΡ ΡΡΠ΅ΠΏΠ΅Π½Ρ Π΄Π΅ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π² ΠΈΠ΅ΡΠ°ΡΡ ΠΈΠΈ ΠΊΠ»Π°ΡΡΠΎΠ² ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ. Π ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠΈ Spring Π²Ρ ΠΎΡΠΌΠ΅ΡΠΈΡΠ΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ: Π²ΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠ΅ ΡΠ΄ΠΎΠ±ΡΡΠ²Π°, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ Π½Π΅ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ, ΠΈΠ΅ΡΠ°ΡΡ ΠΈΡ ΠΊΠ»Π°ΡΡΠΎΠ² ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ Π² Π²ΡΡΡΠ΅ΠΉ ΡΡΠ΅ΠΏΠ΅Π½ΠΈ Π΄Π΅ΡΠ°Π»ΡΠ½ΠΎΠΉ.
ΠΠΎΠ²ΡΠ΅ΠΌΠ΅ΡΡΠ½ΠΎ Π² ΠΌΠΎΠ΅ΠΌ Π±Π»ΠΎΠ³Π΅ Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ Π²ΡΡΡΠ΅ΡΠ°ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΡ, Π² ΠΊΠΎΡΠΎΡΡΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ Spring ΠΌΠΎΠ³ΡΡ ΡΠΌΠ΅Π½ΡΡΠ°ΡΡ ΠΎΠ±ΡΠ΅ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΈ Π² ΡΠΎ ΠΆΠ΅ Π²ΡΠ΅ΠΌΡ ΡΠΎΠ²Π΅ΡΡΠ΅Π½ΡΡΠ²ΠΎΠ²Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ, ΠΊΠ»Π°ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΈ Π΄ΠΈΠ°Π³Π½ΠΎΡΡΠΈΠΊΠΈ ΠΎΡΠΈΠ±ΠΎΠΊ Π²Π½ΡΡΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.