ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ Π²Π΅Π± ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° java
ΠΠΈΡΠ΅ΠΌ Java Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΌ ΡΡΠ΅ΠΊΠ΅. Π‘ Π½ΡΠ»Ρ Π΄ΠΎ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠ½ΠΎΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ. Π§Π°ΡΡΡ 1
ΠΠ²ΡΠΎΡΠΈΠ·ΡΠΉΡΠ΅ΡΡ
ΠΠΈΡΠ΅ΠΌ Java Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΌ ΡΡΠ΅ΠΊΠ΅. Π‘ Π½ΡΠ»Ρ Π΄ΠΎ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠ½ΠΎΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ. Π§Π°ΡΡΡ 1
ΠΠ° ΡΠ΅Π³ΠΎΠ΄Π½ΡΡΠ½ΠΈΠΉ Π΄Π΅Π½Ρ Π² ΠΌΠΈΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π½Π° Java ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΎΠ³ΡΠΎΠΌΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ ΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ, Π² ΠΊΠΎΡΠΎΡΡΡ Π½ΠΎΠ²ΠΈΡΠΊΡ ΠΎΡΠ΅Π½Ρ Π»Π΅Π³ΠΊΠΎ Π·Π°ΠΏΡΡΠ°ΡΡΡΡ. Π ΡΡΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ Ρ ΠΏΠΎΡΡΠ°ΡΠ°ΡΡΡ ΠΏΡΠΎΡΡΡΠΌ ΡΠ·ΡΠΊΠΎΠΌ ΠΎΠΏΠΈΡΠ°ΡΡ Π²ΡΠ΅ ΡΠ°Π³ΠΈ, Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΈ ΠΏΡΡΠΈ ΠΈΡ ΡΠ΅ΡΠ΅Π½ΠΈΡ. ΠΠ°ΡΠΈΠ½Π°ΡΡ Π±ΡΠ΄Π΅ΠΌ Ρ ΡΠ°ΠΌΠΎΠ³ΠΎ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΠΈ ΠΏΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΠΎ Π½Π°ΡΠ°ΡΠΈΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ.
Spring Boot
Spring Boot β ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΠ°ΠΌΡΡ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ² Π΄Π»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° Java. Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π² ΡΡΠ΅Π΄Π΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Gradle Project. ΠΠ»Ρ ΠΎΠ±Π»Π΅Π³ΡΠ΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΡΠ°ΠΉΡΠΎΠΌ https://start.spring.io, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ ΡΡΠΎΡΠΌΠΈΡΠΎΠ²Π°ΡΡ build.gradle.
ΠΠ»Ρ Π½Π°ΡΠ°Π»Π° Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΠ±ΡΠ°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ:
Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ build.gradle Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡΡΡ ΡΡΠΎ-ΡΠΎ ΠΏΠΎΡ ΠΎΠΆΠ΅Π΅:
Π’ΠΎΡ ΠΆΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΈ Π² ΡΠ°ΠΌΠΎΠΉ IntelliJ Idea: File β New β Project β Spring Initializr.
ΠΠΏΠΈΡΠ΅ΠΌ ΡΠ°ΠΌΡΠΉ ΠΏΡΠΎΡΡΠΎΠΉ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ, ΡΡΠΎΠ±Ρ ΡΠ΄ΠΎΡΡΠΎΠ²Π΅ΡΠΈΡΡΡΡ, ΡΡΠΎ ΠΏΡΠΎΠ΅ΠΊΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ:
4β5 Π΄Π΅ΠΊΠ°Π±ΡΡ, ΠΠ½Π»Π°ΠΉΠ½, ΠΠ΅cΠΏΠ»Π°ΡΠ½ΠΎ
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠ°Π±ΠΎΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΉΠ΄Ρ ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ http://localhost:8080/hello?name=World ΠΈΠ»ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠ½ΡΠΎΠ»ΡΠ½ΠΎΠΉ ΡΡΠΈΠ»ΠΈΡΡ curl:
ΠΠ°Ρ ΡΠ΅ΡΠ²ΠΈΡ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΠΈ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, ΠΏΠΎΡΠ° ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡΡ ΠΊ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌΡ ΡΠ°Π³Ρ.
ΠΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠΌ, ΡΡΠΎ Π½Π°ΠΌ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π΅ΠΊΠΈΠΉ ΡΠ΅ΡΠ²ΠΈΡ Π΄Π»Ρ ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ-ΠΌΠ°Π³Π°Π·ΠΈΠ½Π° ΠΏΠΎ ΠΏΡΠΎΠ΄Π°ΠΆΠ΅ ΠΊΠ½ΠΈΠ³. ΠΡΠΎ Π±ΡΠ΄Π΅Ρ rest-ΡΠ΅ΡΠ²ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ, ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ, ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΊΠ½ΠΈΠ³ΠΈ. Π₯ΡΠ°Π½ΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅ Π±ΡΠ΄Π΅ΠΌ Π² ΠΠ Postgres.
Docker
ΠΠ»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ Π½Π°ΠΌ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π±Π°Π·Π° Π΄Π°Π½Π½ΡΡ . ΠΡΠΎΡΠ΅ Π²ΡΠ΅Π³ΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΈΠ½ΡΡΠ°Π½Ρ ΠΠ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Docker. Docker ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΡΡΠ΅Π΄Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ β ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ΅. ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ Π²ΡΠ΅ΠΌΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΠΌΠΈ ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌΠΈ.
ΠΡΠΊΠ°ΡΠΈΠ²Π°Π΅ΠΌ ΠΎΠ±ΡΠ°Π· ΠΠ ΠΈ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ:
Lombok
Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ data-ΠΊΠ»Π°ΡΡ Β«ΠΊΠ½ΠΈΠ³Π°Β». ΠΠ½ Π±ΡΠ΄Π΅Ρ ΠΈΠΌΠ΅ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ»Π΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΠΌΠ΅ΡΡ getters, ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΈ Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΠΉ (immutable). Π‘ΡΠ΅Π΄Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΠΏΠΎΠ»ΡΠΌ, Π½ΠΎ ΡΡΠΎΠ±Ρ ΡΠΌΠ΅Π½ΡΡΠΈΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΎΠ΄Π½ΠΎΡΠΈΠΏΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Lombok.
ΠΠΎΡΠ»Π΅ ΡΠ±ΠΎΡΠΊΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ, ΠΊΠ°ΠΊ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΊΠ»Π°ΡΡ ΠΏΠΎΡΠ»Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ. ΠΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ ΡΡΠΈΠ»ΠΈΡΠΎΠΉ, Π²Ρ ΠΎΠ΄ΡΡΠ΅ΠΉ Π² ΡΠΎΡΡΠ°Π² JDK:
Lombok ΠΎΡΠ΅Π½Ρ ΡΠΏΡΠΎΡΠ°Π΅Ρ ΡΠΈΡΠ°Π΅ΠΌΠΎΡΡΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ ΡΠΎΠ΄Π° ΠΊΠ»Π°ΡΡΠΎΠ² ΠΈ ΠΎΡΠ΅Π½Ρ ΡΠΈΡΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅.
Spring Data JPA
ΠΠ»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΠ Π½Π°ΠΌ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ Spring Data JPA, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ ΡΠΆΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ°. ΠΠ°Π»ΡΡΠ΅ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΎΠΏΠΈΡΠ°ΡΡ ΠΊΠ»Π°ΡΡΡ Entity ΠΈ Repository. ΠΠ΅ΡΠ²ΡΠΉ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΡΠ°Π±Π»ΠΈΡΠ΅ Π² ΠΠ, Π²ΡΠΎΡΠΎΠΉ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌ Π΄Π»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΈ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ Π·Π°ΠΏΠΈΡΠ΅ΠΉ Π² ΡΡΡ ΡΠ°Π±Π»ΠΈΡΡ.
ΠΠ»Π°ΡΡ Repository Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠΎΠ²ΡΠ΅ΠΌ ΠΏΡΠΎΡΡΠΎ β Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΎΠ±ΡΡΠ²ΠΈΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΈ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡΡΡ ΠΎΡ CrudRepository:
ΠΠΈΠΊΠ°ΠΊΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ. Spring Π²ΡΡ ΡΠ΄Π΅Π»Π°Π΅Ρ Π·Π° Π½Π°Ρ. Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΌΡ ΡΡΠ°Π·Ρ ΠΏΠΎΠ»ΡΡΠΈΠΌ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ CRUD β create, read, update, delete. Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π» ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΠ°ΡΠΈΠ²Π°ΡΡ β ΡΡΡΡ ΠΏΠΎΠ·ΠΆΠ΅ ΠΌΡ ΡΡΠΎ ΡΠ²ΠΈΠ΄ΠΈΠΌ. ΠΡ ΠΎΠΏΠΈΡΠ°Π»ΠΈ DAO-ΡΠ»ΠΎΠΉ.
Π’Π΅ΠΏΠ΅ΡΡ Π½Π°ΠΌ Π½ΡΠΆΠ΅Π½ Π½Π΅ΠΊΠΈΠΉ ΡΠ΅ΡΠ²ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΈΠΌΠ΅ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ:
ΠΡΠΎ ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠΉ ΡΠ΅ΡΠ²ΠΈΡΠ½ΡΠΉ ΡΠ»ΠΎΠΉ. Π Π΅Π°Π»ΠΈΠ·ΡΠ΅ΠΌ ΡΡΠΎΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ:
ΠΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΊΠ»Π°ΡΡΠ° Spring ΠΎΠΏΡΡΡ Π²ΡΡ Π²ΠΎΠ·ΡΠΌΡΡ Π½Π° ΡΠ΅Π±Ρ β ΡΠ°ΠΌ ΡΠΎΠ·Π΄Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ BookRepository ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π΅Π³ΠΎ Π² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ. ΠΠΌΠ΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Ρ ΠΠ:
MapStruct
Π‘ΠΌΠΎΡΡΡ Π½Π° ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡΡΡ, ΡΡΠΎ ΠΊΠ»Π°ΡΡ Book Π½Π΅ Π½ΡΠΆΠ΅Π½, ΠΈ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ BookEntity, Π½ΠΎ ΡΡΠΎ Π½Π΅ ΡΠ°ΠΊ. Book β ΡΡΠΎ ΠΊΠ»Π°ΡΡ ΡΠ΅ΡΠ²ΠΈΡΠ½ΠΎΠ³ΠΎ ΡΠ»ΠΎΡ, Π° BookEntity β DAO. Π Π½Π°ΡΠ΅ΠΌ ΠΏΡΠΎΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΎΠ½ΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎΠ²ΡΠΎΡΡΡΡ Π΄ΡΡΠ³ Π΄ΡΡΠ³Π°, Π½ΠΎ Π±ΡΠ²Π°ΡΡ ΠΈ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ ΡΠ»ΡΡΠ°ΠΈ, ΠΊΠΎΠ³Π΄Π° ΡΠ΅ΡΠ²ΠΈΡΠ½ΡΠΉ ΡΠ»ΠΎΠΉ ΠΎΠΏΠ΅ΡΠΈΡΡΠ΅Ρ Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΡΠ°Π±Π»ΠΈΡΠ°ΠΌΠΈ ΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ DAO-ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ.
ΠΡΠ»ΠΈ ΠΏΡΠΈΡΠΌΠΎΡΡΠ΅ΡΡΡΡ, ΡΠΎ ΠΈ ΡΡΡ ΠΌΡ Π²ΠΈΠ΄ΠΈΠΌ ΠΎΠ΄Π½ΠΎΡΠΈΠΏΠ½ΡΠΉ ΠΊΠΎΠ΄, ΠΊΠΎΠ³Π΄Π° ΠΌΡ ΠΏΠ΅ΡΠ΅ΠΊΠ»Π°Π΄ΡΠ²Π°Π΅ΠΌ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· BookEntity Π² Book ΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ. Π§ΡΠΎΠ±Ρ ΡΠΏΡΠΎΡΡΠΈΡΡ ΡΠ΅Π±Π΅ ΠΆΠΈΠ·Π½Ρ ΠΈ ΡΠ΄Π΅Π»Π°ΡΡ ΠΊΠΎΠ΄ Π±ΠΎΠ»Π΅Π΅ ΡΠΈΡΠ°Π΅ΠΌΡΠΌ, Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΎΠΉ MapStruct. ΠΡΠΎ mapper, ΠΊΠΎΡΠΎΡΡΠΉ Π·Π° Π½Π°Ρ Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΊΠ»Π°Π΄ΡΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π² Π΄ΡΡΠ³ΠΎΠΉ ΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ Π² build.gradle:
Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ mapper, Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±ΡΡΠ²ΠΈΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΠΏΠΈΡΠ΅ΠΌ ΠΌΠ΅ΡΠΎΠ΄Ρ Π΄Π»Ρ ΠΊΠΎΠ½Π²Π΅ΡΡΠ°ΡΠΈΠΈ ΠΈΠ· BookEntity Π² Book ΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ:
ΠΠΎΡΠ»Π΅ ΡΠ±ΠΎΡΠΊΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ°, Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ build/generated/sources/annotationProcessor ΠΏΠΎΡΠ²ΠΈΡΡΡ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ mapper, ΠΈΠ·Π±Π°Π²ΠΈΠ² Π½Π°Ρ ΠΎΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΏΠΈΡΠ°ΡΡ ΠΎΠ΄Π½ΠΎΡΠΈΠΏΠ½ΡΠ΅ Π΄Π΅ΡΡΡΠΊΠΈ ΡΡΡΠΎΠΊ ΠΊΠΎΠ΄Π°:
ΠΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΠΌΡΠΏΠΏΠ΅ΡΠΎΠΌ ΠΈ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΠ΅ΠΌ DefaultBookService. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π½Π°ΠΌ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ final-ΠΏΠΎΠ»Π΅ BookMapper, ΠΊΠΎΡΠΎΡΠΎΠ΅ Lombok Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎΠ΄ΡΡΠ°Π²ΠΈΡ Π² Π°ΡΠ³ΡΠΌΠ΅Π½Ρ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ°, Π° spring ΡΠ°ΠΌ ΠΈΠ½ΡΡΠ°Π½ΡΠΈΠΈΡΡΠ΅Ρ ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ Π² Π½Π΅Π³ΠΎ:
Π’Π΅ΠΏΠ΅ΡΡ ΠΎΠΏΠΈΡΠ΅ΠΌ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ http-Π·Π°ΠΏΡΠΎΡΡ ΠΊ Π½Π°ΡΠ΅ΠΌΡ ΡΠ΅ΡΠ²ΠΈΡΡ. ΠΠ»Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΠΊΠ½ΠΈΠ³ΠΈ Π½Π°ΠΌ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΎΠΏΠΈΡΠ°ΡΡ ΠΊΠ»Π°ΡΡ Π·Π°ΠΏΡΠΎΡΠ°. ΠΡΠΎ data transfer object, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊ ΡΠ²ΠΎΠ΅ΠΌΡ ΡΠ»ΠΎΡ DTO.
ΠΠ°ΠΌ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΊΠΎΠ½Π²Π΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ AddBookRequest Π² ΠΎΠ±ΡΠ΅ΠΊΡ Book. Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ BookToDtoMapper:
Π’Π΅ΠΏΠ΅ΡΡ ΠΎΠ±ΡΡΠ²ΠΈΠΌ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ, Π½Π° ΡΠ½Π΄ΠΏΠΎΠΈΠ½ΡΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π±ΡΠ΄ΡΡ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡ Π·Π°ΠΏΡΠΎΡΡ Π½Π° ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΊΠ½ΠΈΠ³, Π΄ΠΎΠ±Π°Π²ΠΈΠ² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ BookService ΠΈ BookToDtoMapper. ΠΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΡ AddBookRequest ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΠΈΡΠ°ΡΡ Response-ΠΎΠ±ΡΠ΅ΠΊΡ, Π΄ΠΎΠ±Π°Π²ΠΈΠ² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΠΌΠ΅ΡΠΎΠ΄ Π² ΠΌΡΠΏΠΏΠ΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΊΠΎΠ½Π²Π΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ Book Π² GetBookResponse. ΠΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ 3 ΠΌΠ΅ΡΠΎΠ΄Π°: ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ POST ΠΌΡ Π±ΡΠ΄Π΅ΠΌ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ ΠΊΠ½ΠΈΠ³Ρ, ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ GET ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΡΠΏΠΈΡΠΎΠΊ Π²ΡΠ΅Ρ ΠΊΠ½ΠΈΠ³ ΠΈ ΠΊΠ½ΠΈΠ³Ρ ΠΏΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅ΠΌ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ PathVariable.
ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° spring.jpa.hibernate.ddl-auto=update ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ hibernate Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΡΡ Π΅ΠΌΡ ΠΊΠΎΠ³Π΄Π° ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ. Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΡ Π½Π΅ ΡΠΎΠ·Π΄Π°Π²Π°Π»ΠΈ Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΡΡ Π΅ΠΌ, ΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ΄Π΅Π»Π°Π΅Ρ ΡΡΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ. Π ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΠΏΡΠΎΠΌΡΡΠ»Π΅Π½Π½ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΡ Π΅ΠΌΡ Π±Π°Π· Π΄Π°Π½Π½ΡΡ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΠΌΠ΅Π½ΡΡΡΡΡ, ΠΈ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π΄Π»Ρ Π²Π΅ΡΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΡΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Liquibase.
ΠΠ°ΠΏΡΡΡΠΈΠΌ Π½Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΠΌ Π·Π°ΠΏΡΠΎΡΡ Π½Π° Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠ½ΠΈΠ³:
ΠΠ°ΠΏΡΡΡΠΈΠΌ ΠΊΠ»ΠΈΠ΅Π½Ρ ΠΠ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΠΌ sql-Π·Π°ΠΏΡΠΎΡ:
ΠΠΎΠ»ΡΡΠΈΠΌ ΡΠΏΠΈΡΠΎΠΊ Π²ΡΠ΅Ρ ΠΊΠ½ΠΈΠ³:
ΠΠΎΠ»ΡΡΠΈΠΌ ΠΊΠ½ΠΈΠ³Ρ ΡΠ΅ΡΠ΅Π· Π·Π°ΠΏΡΠΎΡ ΠΊ api Π½Π°ΡΠ΅Π³ΠΎ ΡΠ΅ΡΠ²ΠΈΡΠ°, ΡΠΊΠ°Π·Π°Π² ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΊΠ½ΠΈΠ³ΠΈ:
Π Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ ΠΎΠ± ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ². ΠΠ΄Π΅ΡΡ ΠΌΡ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ findAll β Π½Π°ΠΉΡΠΈ Π²ΡΠ΅ Π·Π°ΠΏΠΈΡΠΈ, ByAuthor β ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΎΠ±ΡΠ°ΠΌΠ»ΡΠ΅ΡΡΡ %. ΠΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ ΡΡΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Ρ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠΌ βBlochβ) Π±ΡΠ΄Π΅Ρ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π·Π°ΠΏΡΠΎΡ:
ΠΠ°Π»Π΅Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΠΌΠ΅ΡΠΎΠ΄ Π² BookService ΠΈ DefaultBookService:
Π Π² ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ΅ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΡΠ΅ΠΌ ΠΌΠ΅ΡΠΎΠ΄ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠΏΠΈΡΠΊΠ° ΠΊΠ½ΠΈΠ³ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΠΎ ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ΅ get-ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° author ΠΌΡ ΠΈΡΠΊΠ°Π»ΠΈ ΠΏΠΎ Π°Π²ΡΠΎΡΡ, Π° Π΅ΡΠ»ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ Π½Π΅ ΠΏΠ΅ΡΠ΅Π΄ΡΡΡΡ, ΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΡΠ°ΡΠ°Ρ Π»ΠΎΠ³ΠΈΠΊΠ° ΠΈ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΡΠΏΠΈΡΠΎΠΊ Π²ΡΠ΅Ρ ΠΊΠ½ΠΈΠ³:
Π’Π΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΏΠΎΠΈΡΠΊ:
ΠΡΠ°ΠΊ, ΠΌΡ Π½Π°ΠΏΠΈΡΠ°Π»ΠΈ Π²Π΅Π±-ΡΠ΅ΡΠ²ΠΈΡ ΠΈ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΠ»ΠΈΡΡ Ρ ΠΎΡΠ΅Π½Ρ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΠΌΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΠΌΠΈ. Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΡΠ°ΡΡΠΈ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΠΌ ΡΠ»ΡΡΡΠ°ΡΡ Π½Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π΄ΠΎΠ±Π°Π²ΠΈΠ² Π² Π½Π΅Π³ΠΎ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΡ, Π° ΡΠ°ΠΊΠΆΠ΅ Π½Π°ΠΏΠΈΡΠ΅ΠΌ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΈΡΡΠ²Π°ΡΡ ΡΠΎΠΊΠ΅Π½Ρ Π΄ΠΎΡΡΡΠΏΠ°.
ΠΠ΅Π±-ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° Π½Π° Java Π·Π° 30 ΠΌΠΈΠ½ΡΡ
ΠΠΏΡΡΠ½ΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΌΠΎΠ³ΡΡ Π½Π΅ ΡΠΈΡΠ°ΡΡ Π΄Π°Π»ΡΡΠ΅, ΡΠ°ΠΊ-ΠΊΠ°ΠΊ ΡΡΠ° ΡΡΠ°ΡΡΡ ΡΠ°ΡΡΡΠΈΡΠ°Π½Π° ΡΠΊΠΎΡΠ΅Π΅ Π½Π° Π½ΠΎΠ²ΠΈΡΠΊΠΎΠ², Π½ΠΎ Π²ΡΡ-ΠΆΠ΅ Ρ Π±ΡΠ» Π±Ρ ΠΎΡΠ΅Π½Ρ ΡΠ°Π΄, Π΅ΡΠ»ΠΈ Π±Ρ ΠΊΡΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ ΠΎΡΡΠ°Π²ΠΈΠ» ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠ²Π½ΡΡ ΠΊΡΠΈΡΠΈΠΊΡ Π² ΠΌΠΎΠΉ Π°Π΄ΡΠ΅Ρ ΠΈΠ»ΠΈ ΡΠΊΠ°Π·Π°Π» Π½Π° ΠΎΡΠΈΠ±ΠΊΠΈ.
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ Ρ Π±Ρ Ρ ΠΎΡΠ΅Π» ΡΠ°ΡΡΠΊΠ°Π·Π°ΡΡ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Ρ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΌΠΈ ΡΡΠΈΠ»ΠΈΡΠΌΠΈ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ²ΠΎΡ Π²Π΅Π±-ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ.
Π ΡΡΠ°ΡΡΠ΅ Ρ ΡΠ°ΡΡΠΊΠ°ΠΆΡ, ΠΊΠ°ΠΊ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Ρ Π½ΡΠ»Ρ ΠΌΠΎΠΆΠ½ΠΎ, Π΄Π°ΠΆΠ΅ Π½Π΅ Π²Π»Π°Π΄Π΅Ρ ΠΎΠ³ΡΠΎΠΌΠ½ΡΠΌ ΡΡΠ΅ΠΊΠΎΠΌ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ, ΡΠ°Π·Π²Π΅ΡΠ½ΡΡΡ Π½Π° ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ ΠΎΠ±Π»Π°ΠΊΠ΅ ΡΠ²ΠΎΠΉ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ ΡΡΡΠ½Π΅Π½ΡΠΊΠΈΠΉ ΡΠ΅ΡΡΡΡ. ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²Π°Ρ Π»ΠΈΡΠ½ΡΠΉ Π±Π»ΠΎΠ³, ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠΉ ΡΠ΅ΡΠ²ΠΈΡ ΠΈΠ»ΠΈ ΠΏΡΠΎΡΡΠΎ ΡΠ΅ΡΡΡΡ ΠΎ ΠΊΠΎΡΠΎΡΠΎΠΌ Π²Ρ Π΄Π°Π²Π½ΠΎ ΠΌΠ΅ΡΡΠ°Π΅ΡΠ΅. Π§ΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠΈΡΡΠ½Π΅Π΅, ΡΠ΅ΠΌ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ Π΄ΡΡΠ³Ρ ΡΡΡΠ»ΠΊΡ Π½Π° ΡΠ²ΠΎΠΉ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ ΡΠ΅ΡΡΡΡ ΠΈ Π²ΠΌΠ΅ΡΡΠ΅ ΠΎΠ±ΡΡΠ΄ΠΈΡΡ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠ΅ ΠΌΠΎΠΌΠ΅Π½ΡΡ ΠΈΠ»ΠΈ ΠΏΡΠΎΡΡΠΎ ΠΏΠΎΡΠΌΠ΅ΡΡΡΡΡ.
ΠΠ»Ρ ΠΏΡΠ΅Π΄ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΠ΅Π»Π΅ΠΉ ΠΈΠ»ΠΈ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ Π±ΠΈΠ·Π½Π΅ΡΠΌΠ΅Π½ΠΎΠ², ΠΈΠ»ΠΈ Π²Π»Π°Π΄Π΅Π»ΡΡΠ΅Π² ΠΊΠ°ΠΊΠΈΡ -Π»ΠΈΠ±ΠΎ ΠΏΠ»ΠΎΡΠ°Π΄ΠΎΠΊ Π±ΡΠ΄Π΅Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ ΡΠ·Π½Π°ΡΡ, ΡΡΠΎ ΠΈΠΌ Π² Π½Π°ΡΠ°Π»Π΅ ΠΈΡ Π±ΠΈΠ·Π½Π΅ΡΠ° ΡΠΎΠ²ΡΠ΅ΠΌ Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π²ΠΊΠ»Π°Π΄ΡΠ²Π°ΡΡ Π±ΠΎΠ»ΡΡΠΈΠ΅ Π΄Π΅Π½ΡΠ³ΠΈ Π½Π° Β«ΠΊΡΡΡΠΎΠΉΒ» ΡΠ°ΠΉΡ, Π° Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΎΡΠΊΡΡΡΡΠΌΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΠΌΠΈ ΠΈ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ Π·Π° ΡΡΠΎ Π·Π°ΠΏΠ»Π°ΡΠΈΡΡ β ΡΡΠΎ Π·Π° ΡΠΎ, ΡΡΠΎΠ±Ρ Π²Π·ΡΡΡ Π² Π°ΡΠ΅Π½Π΄Ρ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΉ ΡΠ΅ΡΠ²Π΅Ρ.
Π ΡΡΠ°ΡΡΠ΅ Ρ ΠΏΠΎΠΊΠ°ΠΆΡ, ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°ΡΡ ΠΏΡΠΎΡΡΠ΅ΠΉΡΠΈΠΉ ΡΠ°ΠΉΡ, ΠΈΠΌΠ΅ΡΡΠΈΠΉ ΠΏΡΠΎΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ. ΠΡΠΎ ΡΠΊΠΎΡΠ΅Π΅ ΡΡΠ°ΡΡΡ, ΠΏΠΎΡΠ²ΡΡΠ΅Π½Π½Π°Ρ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠΎΠΌΡ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ ΠΎΠ±ΡΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ ΠΈ ΠΏΠΎΠΌΠΎΡΡ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ ΡΡΠΎΡΠΌΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡΡΡ ΡΠ°ΠΊΠΈΠ΅ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠ΅ ΡΠ΅ΡΡΡΡΡ, ΠΊΠ°ΠΊ Google, Facebook, ΠΠΊΠΎΠ½ΡΠ°ΠΊΡΠ΅.
ΠΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ, ΡΡΠΎ Π²ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ-ΡΠ΅ΡΠ²ΠΈΡΡ ΡΠΎΠ·Π΄Π°ΡΡΡΡ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ, ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π΅ΡΠ°Π»ΠΈ ΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΊΠ°ΠΊΠΈΡ -ΡΠΎ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΡ ΠΈ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ Π²Π΅ΡΠ΅ΠΉ, Π½ΠΎ ΡΡΡΡ ΠΎΡΡΠ°ΡΡΡΡ Π΅Π΄ΠΈΠ½ΠΎΠΉ.
ΠΠ»Ρ ΡΠ΅Ρ , ΠΊΡΠΎ Π·Π°ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠΎΠ²Π°Π»ΡΡ:
ΠΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ°
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π½Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡΡ:
ΠΠΈΡΠ°ΡΡ Π½Π°Ρ ΡΠ΅ΡΠ²ΠΈΡ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ Π½Π° Java, ΠΊΠ°ΠΊ ΡΠ°ΠΌΠΎΠΌ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ½Π½ΠΎΠΌ ΡΠ·ΡΠΊΠ΅ Π΄Π»Ρ Π²Π΅Π±-ΡΠ΅ΡΠ²ΠΈΡΠΎΠ².
ΠΡΠΎΠ²Π΅ΡΡΡΠ΅, ΡΡΠΎ Π½Π° Π²Π°ΡΠ΅ΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ Π²Π΅ΡΡΠΈΡ Java, ΡΠ΅ΠΉΡΠ°Ρ ΡΡΠΎ 8 Π²Π΅ΡΡΠΈΡ. ΠΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π·Π΄Π΅ΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ Java. Π 97% ΡΠ»ΡΡΠ°ΡΡ ΡΠ°ΠΊ ΠΎΠ½ΠΎ ΠΈ Π΅ΡΡΡ, Π½ΠΎ Π΅ΡΠ»ΠΈ ΡΡΠΎ Π½Π΅ ΡΠ°ΠΊ, ΡΠΎ ΡΠ»Π΅Π΄ΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΠΌΠΈ Π½Π° ΡΡΠΎΠΌ ΡΠ°ΠΉΡΠ΅ Π²Ρ Π±Π΅Π· ΡΡΡΠ΄Π° ΠΈΡΠΏΡΠ°Π²ΠΈΡΠ΅ ΡΡΠΎ, ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ² ΠΈ Π½Π°ΡΡΡΠΎΠΈΠ² ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅.
ΠΡΠ»ΠΈ ΠΆΠ΅ Π²ΡΡ-ΡΠ°ΠΊΠΈ ΡΡΠΎ Π½Π΅ ΡΠ΄Π°Π»ΠΎΡΡ, ΡΡΠ°Π·Ρ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌΡΡ Ρ Π²Π°ΠΌΠΈ ΡΠ°ΠΊ, ΠΏΠ΅ΡΠ²ΡΠΌ Π΄Π΅Π»ΠΎΠΌ Π²Ρ ΠΏΡΡΠ°Π΅ΡΠ΅ΡΡ ΡΠ΅ΡΠΈΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π½Π° ΡΡΠΈΡ ΡΠ°ΠΉΡΠ°Ρ :
ΠΠΎΠΎΠ±ΡΠ΅, ΠΎΡΠΊΡΠΎΡ Π²Π°ΠΌ ΡΠ΅ΠΊΡΠ΅Ρ, Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ, ΠΊΠΎΠ³Π΄Π° Ρ Π²Π°Ρ Π²ΡΡ Π·Π°ΡΠ°Π±ΠΎΡΠ°Π»ΠΎ Ρ 1 ΡΠ°Π·Π° β ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½ΠΎ, ΡΡΠΎ ΡΡΠΎ-ΡΠΎ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ. ΠΡΠΎ Π½Π΅ΠΎΡΠΏΠΎΡΠΈΠΌΡΠΉ ΡΠ°ΠΊΡ. ΠΡΡΠ° ΠΎΡΠΈΠ±ΠΎΠΊ, Π½Π΅ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ Π²Π΅ΡΡΠΈΠΉ, ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅ ΠΊΠ»Π°ΡΡΠΎΠ² ΠΈ ΠΏΡΠΎΡΠ΅Π΅ β ΡΡΠΎ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠ²Π»Π΅Π½ΠΈΠ΅.
ΠΠ°Ρ ΠΏΠΎΠΊΠΎΡΠ½ΡΠΉ ΡΠ»ΡΠ³Π° ΡΠ°ΠΌ ΠΏΡΠΎΡΠΈΠ΄Π΅Π» 3 Π½Π΅Π΄Π΅Π»ΠΈ Ρ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ, ΠΎΠ±Π»Π°Π·ΠΈΠ² ΡΠ°ΠΊΠΈΠ΅ Π·Π°ΠΊΠΎΡΠ»ΠΊΠΈ ΠΈΠ½ΡΠ΅ΡΠ½Π΅ΡΠ°, ΡΡΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠ΅-ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΏΠΎΡΠ΅ΡΡΠ» ΡΠ²ΡΠ·Ρ Ρ ΡΠ΅Π°Π»ΡΠ½ΠΎΡΡΡΡ ΠΈ ΠΏΡΠΎΠ»Π΅ΠΆΠ°Π» Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΌΠ΅ΡΡΡΠ΅Π² Π² ΠΏΡΠΈΡ ΠΈΠ°ΡΡΠΈΡΠ΅ΡΠΊΠΎΠΉ Π±ΠΎΠ»ΡΠ½ΠΈΡΠ΅, Π½ΠΎ Π½Π΅ Π±ΡΠ΄Π΅ΠΌ ΠΎΠ± ΡΡΠΎΠΌβ¦ ΠΡΠΎ ΠΈΡΡΠΎΡΠΈΡ Π΄Π»Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΉ ΡΡΠ°ΡΡΠΈ.
ΠΡΠ°ΠΊ, Java ΡΡΠΎΠΈΡ β Π²ΡΡ Ρ ΠΎΡΠΎΡΠΎ.
Π’Π΅ΠΏΠ΅ΡΡ Π½Π°ΠΌ Π½ΡΠΆΠ΅Π½ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ. ΠΠ°, Π½Π°ΠΌ Π½ΡΠΆΠ½Π° ΠΈΠ΄Π΅Ρ. ΠΠ°ΡΠ°Π΅ΠΌ ΠΈ ΡΡΠ°Π²ΠΈΠΌ ΠΎΡΡΡΠ΄Π° JetBrains.
Π’ΠΎΠ»ΡΠΊΠΎ ΡΡΡΠΈΡΠ΅, ΡΡΠΎ Π²Π°ΠΌ Π½ΡΠΆΠ½Π° ΠΈΠΌΠ΅Π½Π½ΠΎ Ultimate β Π²Π΅ΡΡΠΈΡ. ΠΡΠΎΡΡΠ°Ρ Π²Π΅ΡΡΠΈΡ Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. Π’Π°ΠΌ Π΅ΡΡΡ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΠΉ ΠΏΡΠΎΠ±Π½ΡΠΉ ΠΏΠ΅ΡΠΈΠΎΠ΄ Π½Π° 30 Π΄Π½Π΅ΠΉ, Π΄ΡΠΌΠ°Ρ Ρ ΡΡΠΈΠΌ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌ.
ΠΡΠ°ΠΊ, ΡΡΠ΅Π΄Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π΅ΡΡΡ, Java Π΅ΡΡΡ.
ΠΠ°ΡΠ½ΡΠΌ
Π ΡΠ²ΠΎΡ Π²ΡΠ΅ΠΌΡ Ρ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ°Π» ΠΊΡΡΡ ΡΡΠ°ΡΠ΅ΠΉ ΠΈ ΠΏΡΠΎΡΠ΅Π³ΠΎ, ΠΈ ΡΠ΅ΡΠΈΠ», ΡΡΠΎ Π² ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ Ρ ΠΈΡΠΊΠ»ΡΡΡ ΠΏΠΎ ΠΌΠ°ΠΊΡΠΈΠΌΡΠΌΡ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠΈ ΠΈ Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΡΡ ΡΠΎΡΡΠ°Π²Π»ΡΡΡΡΡ, ΠΎΠ±ΡΡΠ½ΠΎ ΠΎΠ½Π° ΡΠΎΠ»ΡΠΊΠΎ ΠΎΡΠ²Π»Π΅ΠΊΠ°Π΅Ρ, Ρ ΠΌΠ΅Π½Ρ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π΄ΡΡΠ³Π°Ρ Π²Π΅ΡΡΠΈΡ, Π΄ΡΡΠ³ΠΎΠΉ ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ ΠΈ ΠΏΡΠΎΡΠ΅Π΅.
Π§Π°ΡΡΠΎ Π²ΠΈΠΆΡ Π²ΠΎΠΏΡΠΎΡΡ ΠΎΡ Π½ΠΎΠ²ΠΈΡΠΊΠΎΠ² ΠΏΡΠΎ ΡΠ°ΠΊΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠ΅ Π²Π΅ΡΠΈ, ΠΊΠ°ΠΊ Spring ΠΈ Hibernate (https://spring.io/, hibernate.org). Π 96% ΡΠ»ΡΡΠ°ΡΡ Π²Π°ΠΌ ΡΡΠΎ ΠΏΠΎΠΊΠ° ΡΡΠΎ Π½Π΅ Π½Π°Π΄ΠΎ, ΠΈ Π±Π΅Π· Ρ ΠΎΡΠΎΡΠ΅ΠΉ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠΈ ΠΈ Ρ ΠΎΡΠΎΡΠ΅Π³ΠΎ ΡΠΊΠΈΠ»Π»Π° Β«solve problemΒ» Π²Ρ ΡΠ²ΡΠ·Π½ΠΈΡΠ΅ ΡΠ°ΠΌ ΠΎΡΠ΅Π½Ρ Π½Π°Π΄ΠΎΠ»Π³ΠΎ ΠΈ Π²ΡΠ±ΡΠ°ΡΡΡΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΎΡΠ΅Π½Ρ ΡΡΠΆΠ΅Π»ΠΎ.
ΠΠ°ΡΠ° Π°Π»ΡΠΌΠ°-ΠΌΠ°ΡΠ΅Ρ Π½Π° ΠΏΠ΅ΡΠ²ΡΡ ΠΏΠΎΡΠ°Ρ β ΡΡΠΎ 2 ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ:
Β«Application serverΒ». Π§ΡΠΎ ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅? Π Π²ΠΎΡ, ΡΡΠΎ Application server.
ΠΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ Π²Π΅Π±-ΡΠ΅ΡΡΡΡΠΎΠ²
Π‘ΡΡΡ ΡΠ°ΠΊΠ°Ρ, ΡΠ΅ΡΠ²Π΅Ρ. Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΡΠ΅ΡΠ²Π΅Ρ? ΠΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ Β«Π·Π°ΡΠΈΠΊΠ»Π΅Π½Π½ΠΎΒ» ΠΊΡΡΡΠΈΡΡΡΡ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΈ ΡΠ»ΡΡΠ°Π΅Ρ ΠΏΠΎΡΡΡ. ΠΡΠΎ ΡΠ΅ΠΌΠ° ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ°Π·Π³ΠΎΠ²ΠΎΡΠ°. ΠΠΎ Π² ΠΎΠ±ΡΠ΅ΠΌ, ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ 2 Π²Π°ΡΠΈΠ°Π½ΡΠ° ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π²ΠΎΠΎΠ±ΡΠ΅ ΡΠ΅ΡΠ²Π΅Ρ ΡΠΌΠ΅Π΅Ρ Π΄Π΅Π»Π°ΡΡ, ΠΎΠ½ ΡΠΌΠ΅Π΅Ρ ΠΎΡΠ΄Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅ (GET) β ΠΏΡΠΎΡΡΠΎ Π²Π΅ΡΠ½ΡΡΡ ΡΠΈΡΠ»ΠΎ, ΡΡΡΠ°Π½ΠΈΡΡ, ΠΈΠ»ΠΈ Π΅ΡΡ Π±ΠΎΠ³ Π·Π½Π°Π΅Ρ ΡΡΠΎ. ΠΠΎ, Π΅ΡΡΡ Π΅ΡΡ ΠΈ POST β ΠΎΠ½ ΡΠΎΠΆΠ΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π΄Π°Π½Π½ΡΠ΅, Π½ΠΎ ΠΈ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΠΎΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΈΡ ΠΏΠ΅ΡΠ΅Π΄ ΡΡΠΈΠΌ.
ΠΡΠ»ΠΈ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΠΏΠΎΠ½ΡΡΠ½ΠΎ, ΡΠΈΡΠ°Π΅ΠΌ ΡΡΡ ru.wikipedia.org/wiki/REST.
Π‘ΡΠ°ΡΡΡ Π½Π°ΡΠΈΠ½Π°Π΅Ρ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΡΠΈΠ»ΡΠ½ΠΎ ΡΠ°ΡΡΠΈ. Π’Π΅ΠΏΠ΅ΡΡ Π±ΡΠ΄Ρ ΡΡΠ°ΡΠ°ΡΡΡΡ ΠΏΠΈΡΠ°ΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΊΡΠ°ΡΠΊΠΎ.
ΠΠ΄ΡΠΌ Π² ΠΌΠΎΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ. ΠΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌ, ΡΡΠΎ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ Π½Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ, ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ° ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π²Π΅ΡΡΠΈΠΉ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΈΠ΄ΡΠΌ ΠΏΡΡΡΠΌ Π΄ΠΈΠ»Π΅ΡΠ°Π½ΡΠ°, ΡΠ°ΠΌ Π΅ΡΡΡ ΠΊΠ½ΠΎΠΏΠΊΠ° (Β«Download ZIPΒ» β ΠΊΠ°ΡΠ°Π΅ΠΌ ΠΈ ΡΠ°Π·Π°ΡΡ ΠΈΠ²ΠΈΡΡΠ΅ΠΌ).
Π ΠΎΠΊΠ½Π΅ ΠΏΡΠΈΠ²Π΅ΡΡΡΠ²ΠΈΡ ΠΈΠ΄Π΅ΠΈ Π΅ΡΡΡ ΠΊΠ½ΠΎΠΏΠΊΠ° Β«import projectΒ» β ΠΆΠΌΡΠΌ. ΠΡΠ±ΠΈΡΠ°Π΅ΠΌ ΡΠΊΠ°ΡΠ°Π½Π½ΡΠΉ ΠΈ ΡΠ°Π·Π°ΡΡ ΠΈΠ²ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ.
ΠΠΌΡΠΌ Π΄Π°Π»Π΅Π΅, Π΄Π°Π»Π΅Π΅ ΠΈ Π΄Π°Π»Π΅Π΅, ΠΏΠΎΠΊΠ° Π½Π΅ ΠΎΡΠΊΡΠΎΠ΅ΡΡΡ ΠΏΡΠΎΠ΅ΠΊΡ.
ΠΠ΅ΡΠ²ΡΠ΅ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ
ΠΡΠΎΠ΅ΠΊΡ ΠΎΡΠΊΡΡΡ, Π½ΠΎ Π²Ρ Π½Π΅ Π·Π°ΠΏΡΡΡΠΈΡΠ΅ ΡΠ΅ΡΠ²Π΅Ρ ΠΈ Π½Π΅ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΡΠΊΡΡΡΡ ΡΠ°ΠΉΡ. ΠΠΎΡΠ΅ΠΌΡ? ΠΠΎΡΠΎΠΌΡ ΡΡΠΎ, ΠΈΠ΄Π΅Ρ Π½Π΅ Π·Π½Π°Π΅Ρ, ΡΡΠΎ Π΅ΠΉ Π΄Π΅Π»Π°ΡΡ, ΠΎΠ½Π° ΡΠΌΠ½Π°, Π½ΠΎ Π½Π΅ Π½Π°ΡΡΠΎΠ»ΡΠΊΠΎ.
ΠΠ±ΡΡΡΠ½Π΅Π½ΠΈΠ΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ, Π·Π°Π½ΡΠ»ΠΎ Π±Ρ ΠΏΠ°ΡΡ ΡΡΡΠ°Π½ΠΈΡ ΠΈ ΠΎΠΊΠ°Π·Π°Π»ΠΎ Π±Ρ Π²Π°ΠΌ Β«ΠΌΠ΅Π΄Π²Π΅ΠΆΡΡΒ» ΡΡΠ»ΡΠ³Ρ. ΠΠ΅ΡΠ²ΡΠ΅ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ β ΠΏΠ΅ΡΠ²ΡΠ΅ ΡΡΡΠ΄Π½ΠΎΡΡΠΈ. ΠΡΠΎ Π±ΡΠ΄Π΅Ρ Π²Π°ΡΠΈΠΌ Β«Π±ΠΎΠ΅Π²ΡΠΌ ΠΊΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌΒ». ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°ΡΡ β Π½Π΅ ΠΏΠΈΡΠΎΠΆΠΊΠΈ ΠΏΠ΅ΡΡ. Π‘ΡΡΠ»ΠΊΠΈ ΡΠ²Π΅ΡΡ Ρ Π²Π°ΠΌ ΠΏΠΎΠΌΠΎΠ³ΡΡ. ΠΠΎΡΡΠ°ΡΠΈΡΡ 1-2 ΡΠ°ΡΠ° Π½Π° ΡΡΠΎ β ΡΡΠΎ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ. Π― Π·Π½Π°Ρ Ρ ΠΎΡΠΎΡΠΈΡ ΠΈ ΠΎΠΏΡΡΠ½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΈΠ΄Π΅Π»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π΄Π½Π΅ΠΉ, Π½ΠΎ ΡΠ°ΠΊ ΠΈ Π½Π΅ ΡΡΠΌΠ΅Π»ΠΈ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΠ΅ΡΠ²Π΅Ρ. ΠΡΠΎ Π½Π΅ Π΄Π΅Π»Π°Π΅Ρ ΠΈΠΌ ΡΠ΅ΡΡΠΈ β Π½ΠΎ ΡΠ°ΠΊΡ β Π΅ΡΡΡ ΡΠ°ΠΊΡ. ΠΠΏΠ΅ΡΠ΅Π΄. ΠΠ°ΠΏΡΡΡΠΈΡΠ΅ β Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΠΉΡΠ΅ΡΡ ΠΊ ΡΡΠ΅Π½ΠΈΡ.
ΠΠ΅ Π·Π°Π±ΡΠ΄ΡΡΠ΅ ΡΠΎΠΎΠ±ΡΠΈΡΡ ΠΈΠ΄Π΅Π΅, ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ tomcat (ΠΊΠ°ΠΊ? ΡΡΡΠ»ΠΊΠΈ Π²Π²Π΅ΡΡ Ρ, ΠΏΠΎ Π½ΠΈΠΌ Π΅ΡΡΡ ΠΎΡΠ²Π΅Ρ).
ΠΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΡΠ²ΠΈΡΠ°
ΠΠΎΠ»ΡΡΠΈΡΡΡΡ Ρ Π²Π°Ρ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ Π²ΠΎΡ ΡΡΠΎ:
ΠΠΎ Π΅ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° β Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ! ΠΡ ΡΡΠΎ ΠΆΠ΅, ΡΡΠΎΠ³ΠΎ ΡΠ»Π΅Π΄ΠΎΠ²Π°Π»ΠΎ ΠΎΠΆΠΈΠ΄Π°ΡΡ. Π£ Π½Π°Ρ Π½Π΅ ΡΠΎΠ·Π΄Π°Π½Π° ΡΠ°Π±Π»ΠΈΡΠ° Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ . Π ΠΏΡΠΎΠ΅ΠΊΡΠ΅ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ SQLite
ΠΠ±ΡΡΡΠ½ΠΈΡΡ, ΡΡΠΎ ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Π±ΡΠ΄Π΅Ρ Ρ 0 Π½Π΅ ΠΏΡΠΎΡΡΠΎ. ΠΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ ΠΏΠΎΡΠΈΡΠ°ΡΡ ΠΎΠ± ΡΡΠΎΠΌ Π½Π° ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΠ΅ΡΡΡΡΠ°Ρ .
ΠΠΎΠ³Ρ ΠΏΠΎΡΠΎΠ²Π΅ΡΠΎΠ²Π°ΡΡ Ρ ΠΎΡΠΎΡΠΈΠΉ ΡΠ΅ΡΠ²ΠΈΡ: www.codecademy.com (ΡΠ°ΠΌ Π΅ΡΡΡ Java, SQL, Git, JavaScript ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΡΡΠΏΠ΅Ρ ΠΏΠΎΠ»Π΅Π·Π½ΡΠ΅ Π²Π΅ΡΠΈ), ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΠΈΠ»ΠΎΡΡΠΈ ΠΏΡΠΎΡΡ.
Π ΠΈΡΠΎΠ³Π΅, Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ Π½Π°ΡΡ ΡΠ°Π±Π»ΠΈΡΡ, Π΄Π΅Π»Π°Π΅ΠΌ ΡΡΠΎ ΡΠ°ΠΊ:
Π’Π°Π±Π»ΠΈΡΠ° ΡΠΎΠ·Π΄Π°Π½Π°. ΠΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ°. ΠΠΎΠ±Π°Π²ΡΡΠ΅ ΠΏΠ°ΡΡ ΠΈΠΌΡΠ½ ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠΈΡΠ΅, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Π±ΡΠ΄ΡΡ Π²Π°ΠΌ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½Ρ ΡΠΆΠ΅ ΠΈΠ· ΡΠ°ΠΌΠΎΠΉ Π±Π°Π·Ρ.
Π Π°Π·Π±ΠΎΡ ΠΊΠΎΠ΄Π°
ΠΠ°ΡΠ½ΡΠΌ ΡΠΌΠΎΡΡΠ΅ΡΡ, ΡΡΠΎ ΠΆΠ΅ Ρ Π½Π°Ρ Π² ΠΊΠΎΠ΄Π΅:
Π’Π°ΠΊ ΡΠΆ ΠΏΠΎΠ²Π΅Π»ΠΎΡΡ, ΡΡΠΎ Π² Java Π²ΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΠΏΠΈΡΡΡΡΡ Π² xml-ΡΠ°ΠΉΠ»Π°Ρ , ΡΡΡ Π½Π΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ β ΡΠ°ΠΉΠ» web.xml ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΡΠ΅Ρ, ΡΠΎ, ΠΊΠ°ΠΊΠΎΠΉ ΡΠ΅ΡΠ²Π»Π΅Ρ Π·Π° ΡΡΠΎ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ. ΠΠ½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ Π½Π° ΠΊΠΎΠ΄ ΠΈ ΠΏΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ ΠΏΠΎΠΌΠ΅Π½ΡΡΡ ΡΡΡΠ»ΠΊΡ ΠΈΠ»ΠΈ ΠΈΠΌΡ ΡΠ΅ΡΠ²Π»Π΅ΡΠ°.
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ Π½Π°Ρ ΠΏΡΠΎΡΡΠΎΠ΅, ΠΏΠΎΡΡΠΎΠΌΡ Ρ Π²ΡΠ΅Π³ΠΎ 2 ΠΊΠ»Π°ΡΡΠ° (SQLiteClass ΠΈ MainServlet).
ΠΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ ΠΏΠ΅ΡΠ²ΡΠΉ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° ΡΠ°Π±ΠΎΡΡ Ρ Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½ΡΡ , Π° Π²ΡΠΎΡΠΎΠΉ ΠΈ Π΅ΡΡΡ Π½Π°Ρ ΠΏΡΠ΅ΡΠ»ΠΎΠ²ΡΡΡΠΉ ΡΠ΅ΡΠ²Π»Π΅Ρ.
Π Π²ΠΎΡ ΠΈ Π½Π°ΡΠΈ, ΡΠΏΠΎΠΌΡΠ½ΡΡΡΠ΅ Π²ΡΡΠ΅ POST ΠΈ GET Π·Π°ΠΏΡΠΎΡΡ, ΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ²Π»ΡΡΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌΠΈ ΠΈ Π·Π°Π΄Π°ΡΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΡΠ΅ΡΠ²Π»Π΅ΡΠ° Π² ΠΎΡΠ²Π΅Ρ Π½Π° Π·Π°ΠΏΡΠΎΡΡ ΠΎΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°. Π‘ΡΡΡ ΠΎΠ΄Π½Π° β Π΄Π°Π½Π½ΡΠ΅ ΠΏΡΠΈΡΠ»ΠΈ, Π΄Π°Π½Π½ΡΠ΅ ΡΡΠ»ΠΈ. ΠΠΈΡΠ΅Π³ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎΠ³ΠΎ. ΠΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ ΠΏΠΎΠΈΠ³ΡΠ°ΡΡΡΡ Ρ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ.
ΠΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΠΌ ΠΊ ΠΊΠ»Π°ΡΡΡ, ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΠ΅ΠΌΡ JDBC:
ΠΠ΄Π΅ΡΡ ΡΠΎΠΆΠ΅ Π²ΡΡ ΠΏΡΠΎΡΡΠΎ, ΡΠ΅ ΠΆΠ΅ SQL Π·Π°ΠΏΡΠΎΡΡ, ΡΠΎΠ»ΡΠΊΠΎ Π·Π°Π²ΡΡΠ½ΡΡΡΠ΅ Π² Java-ΠΊΠΎΠ΄. ΠΠ΅Π±ΠΎΠ»ΡΡΠΎΠΉ ΡΠΎΠ²Π΅Ρ β ΠΎΡΡΠ΅ΡΠ΅Π³Π°ΠΉΡΠ΅ΡΡ Π²ΡΡΠΊΠΈΡ Π½Π°Π΄ΡΡΡΠΎΠ΅ΠΊ ΠΈ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ². ΠΠ½ΠΈ Ρ ΠΎΡΠΎΡΠΈ ΡΠΎΠ»ΡΠΊΠΎ Π² Π±ΠΎΠ»ΡΡΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ , ΠΊΠΎΠ³Π΄Π° Ρ Π²Π°Ρ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Ρ Π·Π°ΠΏΠΈΡΠ΅ΠΉ, ΠΈ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΎΠ½Π½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ. ΠΠΎ, Π½Π°ΡΡΠΎΡΡΠΈΠΉ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π²Ρ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΡΠΎΠ»ΡΠΊΠΎ, ΠΊΠΎΠ³Π΄Π° ΠΏΠΈΡΠ΅ΡΠ΅ ΠΈΠΌΠ΅Π½Π½ΠΎ Π²ΡΡΡΠ½ΡΡ Π·Π°ΠΏΡΠΎΡ, Π±Π΅Π· ΡΠ°ΠΊΠΈΡ Π²Π΅ΡΠ΅ΠΉ ΠΊΠ°ΠΊ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΆΠΈΡΡ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ (ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΠΏΠΎΠ½Π°ΡΠ°Π»Ρ).
ΠΡΡ, Ρ ΡΠ΅ΡΠ²Π΅ΡΠ½ΠΎΠΉ ΡΠ°ΡΡΡΡ Π·Π°ΠΊΠΎΠ½ΡΠΈΠΌ. Π’ΡΡ Π²Π°ΠΌ ΠΏΡΠΈΠ΄ΡΡΡΡ ΠΏΠΎΡΠΈΠ΄Π΅ΡΡ, ΠΏΠΎΡΠΈΡΠ°ΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΡΡΠ°ΡΡΠΈ ΠΈ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π°. ΠΠ΅Π· ΡΠ΅Π°Π»ΡΠ½ΠΎΠΉ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ ΡΡΡ Π½ΠΈΠΊΠ°ΠΊ.
ΠΠ»ΠΈΠ΅Π½ΡΡΠΊΠ°Ρ ΡΠ°ΡΡΡ
ΠΠΎΡ ΠΈ ΠΏΡΠΈΡΠ»ΠΎ Π²ΡΠ΅ΠΌΡ Π²Π·Π³Π»ΡΠ½ΡΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ ΡΠ²ΠΎΡΠΈΡΡΡΡ Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅. Π Π½ΠΈΡΠ΅Π³ΠΎ ΡΠ²Π΅ΡΡ ΡΠ΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ. ΠΠΎ, ΡΠΊΠ°ΠΆΡ Π²Π°ΠΌ ΠΏΡΡΠΌΠΎ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ Π²ΡΡ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°, Π½ΠΎ, ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠ°Ρ ΡΠ°ΡΡΡ ΠΎΠ±ΡΡΠ½ΠΎ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ»ΠΎΠΆΠ½Π΅Π΅ Π² ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ, ΡΠ΅ΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ½Π°Ρ. Π Π²ΡΡ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΠΈΠ·-Π·Π° JavaScript-Π°. ΠΡΠ΅Π½Ρ Π±ΡΡΡΡΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈΠΉ ΠΊΠΎΠ΄ ΠΏΡΠ΅Π²ΡΠ°ΡΠ°Π΅ΡΡΡ Π² Π½Π°Π±ΠΎΡ Β«ΠΏΡΠΎΡΡΡΠ½Π΅ΠΉΒ», Π·Π°ΠΏΠ»Π°Ρ, Ρ Π°ΡΠ΄ΠΊΠΎΠ΄Π° ΠΈ ΠΏΡΠΎΡΠΈΡ Π²Π΅ΡΠ΅Π»ΠΎΡΡΠ΅ΠΉ. JavaScript ΡΡΡΠΎΠ² ΠΈ Π±Π΅ΡΠΏΠΎΡΠ°Π΄Π΅Π½. ΠΠ° ΡΠΈΡΡΠΎΠΌ Π½ΡΠΌ ΠΏΠΈΡΠ°ΡΡ ΠΎΡΠ΅Π½Ρ ΡΡΠΆΠ΅Π»ΠΎ. ΠΠΎΡΡΠΎΠΌΡ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ JQuery. ΠΡΡΡ ΠΊΡΡΠ° Π΄ΡΡΠ³ΠΈΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ² ΠΈ Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΡΠ²ΠΎΡΠ΅Π½ΠΈΡ, Π½ΠΎ ΠΈΡ ΠΊΠ°ΡΠ°ΡΡΡΡ Π·Π΄Π΅ΡΡ Π½Π΅ Π±ΡΠ΄Π΅ΠΌ. ΠΡΡΡ ΡΠ°ΠΊΠ°Ρ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΊΠ°, ΡΡΠΎ Π½Π°Π·ΠΎΠ²ΠΈ Π»ΡΠ±ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ ΠΈ ΡΡΠΎ Π±ΡΠ΄Π΅Ρ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ JS-ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ°. ΠΠ·Π²Π΅ΡΡΠ΅Π½ Π² ΡΠ·ΠΊΠΈΡ ΠΊΡΡΠ³Π°Ρ ΡΡΠ΅ΠΉΠΌΡΠΎΡΠΊ Mocha, Ρ Π½Π΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡ ΠΊΠ°ΠΊΠΈΠ΅ ΠΌΡΡΠ»ΠΈ ΠΏΠΎΡΠ΅ΡΠ°Π»ΠΈ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠ°, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ ΠΏΡΠΈΠ΄ΡΠΌΡΠ²Π°Π» Π΅ΠΌΡ Π½Π°Π·Π²Π°Π½ΠΈΠ΅, Π½Ρ Π»Π°Π΄Π½ΠΎ, ΡΡΠΎ Π±ΡΠ»ΠΎ Π΅Π³ΠΎ ΠΏΡΠ°Π²ΠΎ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ ΠΆΠ΅.
ΠΡΠ°ΠΊ, ΡΡΠΎ Ρ Π½Π°Ρ ΡΠ°ΠΌ Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠΌ?
ΠΠΏΡΡΡ Π΄Π°ΠΌ ΡΡΡΠ»ΠΊΡ Π½Π° ΠΎΡΠ»ΠΈΡΠ½Π΅ΠΉΡΠΈΠΉ ΡΠ΅ΡΡΡΡ www.codecademy.com. Π€ΡΠΎΠ½ΡΠ΅Π½Π΄ ΡΠ°ΠΌ ΡΠ°Π·ΠΎΠ±ΡΠ°Π½ ΠΎΡΠ΅Π½Ρ Ρ ΠΎΡΠΎΡΠΎ ΠΈ Π΄Π°ΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ Π±Π°Π·Ρ Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ .
Π’ΡΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠ½ΠΊΡΠΈΡ
Π§ΡΠΎ ΠΎΠ½Π° Π΄Π΅Π»Π°Π΅Ρ? ΠΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ, ΡΠ»ΡΡ ΡΠΎΡ ΡΠ°ΠΌΡΠΉ POST β Π·Π°ΠΏΡΠΎΡ ΠΈ ΡΠ°Π·Π±ΠΈΡΠ°Π΅Ρ ΠΎΡΠ²Π΅Ρ. ΠΡΡ ΠΏΡΠΎΡΡΠΎ, ΠΎΡΠ΄Π°Π» Π΄Π°Π½Π½ΡΠ΅ ΠΈ ΠΏΠΎΠ»ΡΡΠΈΠ» Ρ ΡΠ΅ΡΠ²Π΅ΡΠ°. ΠΠΎ ΡΡΡΡΠΊΠΈ ΠΎΠ½ Π³ΠΎΠ²ΠΎΡΠΈΡ ΡΠ΅ΡΠ²Π΅ΡΡ Β«ΠΠ°ΠΉ ΠΌΠ½Π΅ ΠΈΠΌΠ΅Π½Π° Π²ΡΠ΅Ρ , ΠΊΡΠΎ Ρ ΡΠ΅Π±Ρ Π² Π±Π°Π·Π΅Β» ΠΈΠ»ΠΈ Β«ΠΠ°Π½Π΅ΡΠΈ Π² Π±Π°Π·Ρ ΡΡΠΎ ΠΈΠΌΡΒ» ΠΈ Π΄Π°ΡΡ Π΅ΠΌΡ ΠΈΠΌΡ.
ΠΠΎΡ ΠΈ Π²ΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠ°Ρ ΡΠ°ΡΡΡ.
ΠΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌ ΡΠ΅ΡΡΡΡ Π² Π½Π°ΡΡΠΎΡΡΠΈΠΉ ΠΌΠΈΡ
ΠΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π·Π°ΠΌΠ΅ΡΠΈΡΡ, Π½Π°Ρ ΡΠ΅ΡΠ²ΠΈΡ ΠΊΡΡΡΠΈΡΡΡΡ Π½Π° Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΌ Ρ ΠΎΡΡΠ΅. ΠΡΡΠ³ΠΈΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ Π½Π° Π½Π°ΡΠ΅ΠΌ ΠΆΠ΅ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅. ΠΡΠΈΡΠ»ΠΎ Π²ΡΠ΅ΠΌΡ ΡΡΠΎ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ.
Π’ΡΡ Ρ ΠΎΠΏΠΈΡΡ Π»ΠΈΡΡ ΠΎΠ±ΡΠΈΠΉ ΠΏΡΠΈΠ½ΡΠΈΠΏ ΡΠ΅Π³ΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ. ΠΡΠΎ ΡΠ°ΠΊ ΠΈΠ»ΠΈ ΠΈΠ½Π°ΡΠ΅ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅Ρ ΠΎΡ Π²Π°Ρ Π΄Π΅Π½Π΅Π³ Π½Π° ΡΠ΅ΡΠ²Π΅Ρ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΠ°Π»ΠΎΠ²Π΅ΡΠΎΡΡΠ½ΠΎ, ΡΡΠΎ ΠΊΡΠΎ-ΡΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΡΠΈΠΌ Π±ΡΠ΄Π΅Ρ Π·Π°Π½ΠΈΠΌΠ°ΡΡΡΡ, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π² ΡΠ°ΠΌΠΎΠΌ Π½Π°ΡΠ°Π»Π΅ ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡΠΊΠΎΠ³ΠΎ ΠΏΡΡΠΈ. ΠΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ ΠΎΠ±ΡΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΆΠ΅ ΡΠ΅ΠΉΡΠ°Ρ. ΠΡΠ»ΠΈ ΠΊΡΠΎ ΡΠ΅ΡΠΈΡΡΡΡ β Π·Π½Π°ΠΉΡΠ΅ Π²Ρ ΠΌΠΎΠ»ΠΎΠ΄ΡΡ, Π²ΠΏΠΎΠ»Π½Π΅ Π²Π΅ΡΠΎΡΡΠ½ΠΎ ΠΈΠ· Π²Π°Ρ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠΉΡΠΈ ΡΠΎΠ»ΠΊ.
Π ΠΏΠΎ ΡΡΠ°Π΄ΠΈΡΠΈΠΈ ΡΡΠ°Π·Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠ»ΠΎΠΊ:
Π§ΠΈΡΠ°Π΅ΠΌ, ΡΡΠΎ ΡΠ°ΠΌ Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ, ΡΠΎΡΠΌΠΈΡΡΠ΅ΠΌ Π² Π³ΠΎΠ»ΠΎΠ²Π΅ ΠΎΠ±ΡΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ, ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ° ΠΈ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠ°.
Π‘Π°ΠΌΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠΎΠ±ΡΠ΅ΡΡΠΈ Π½Π° amazone. Π‘ΡΡΠ»ΠΊΡ Π½Π΅ Π΄Π°Ρ, ΠΈΠ±ΠΎ ΡΠ΅ΠΊΠ»Π°ΠΌΠ°, ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ°ΠΌΠΈ ΠΏΠΎΠΈΡΠΊΠ°ΡΡ, ΡΡΠΎ Π½Π΅ ΡΠ»ΠΎΠΆΠ½ΠΎ. ΠΡΡΡ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΠΉ ΡΠ΅ΡΡΠΎΠ²ΡΠΉ ΠΏΠ΅ΡΠΈΠΎΠ΄. ΠΠ! ΠΡΠ΄ΡΡΠ΅ ΠΏΡΠ΅Π΄Π΅Π»ΡΠ½ΠΎ ΠΎΡΡΠΎΡΠΎΠΆΠ½Ρ, Π²Π°Ρ ΠΏΠΎΠΊΠΎΡΠ½ΡΠΉ ΡΠ»ΡΠ³Π° ΡΠ°ΠΌ ΡΠ»ΡΡΠ°Π» ΠΈΡΡΠΎΡΠΈΠΈ, ΠΊΠ°ΠΊ ΡΠΎ ΡΡΠ΅ΡΠΎΠ² ΡΠΏΠΈΡΡΠ²Π°Π»ΠΈΡΡ ΡΡΡΡΡΠΈ Π΄ΠΎΠ»Π»Π°ΡΠΎΠ² Π±Π΅Π· Π²Π΅Π΄ΠΎΠΌΠ° Ρ ΠΎΠ·ΡΠΈΠ½Π°, ΠΈΠ±ΠΎ ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠ°ΠΌΠ° ΡΠΌΠ΅Π΅Ρ Π΄ΠΎΠΊΡΠΏΠ°ΡΡ ΡΠ΅Π±Π΅ ΠΌΠΎΡΠ½ΠΎΡΡΠΈ. ΠΠ΅ ΠΏΠΎΠΏΠ°Π΄ΠΈΡΠ΅ΡΡ, Ρ ΡΠ°ΠΌ ΡΠΆΠ΅ ΠΏΠ»Π°ΡΠΈΠ» Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π· Π·Π° Π½Π΅ΠΏΠΎΠ½ΡΡΠ½ΡΠ΅ ΡΡΠ»ΡΠ³ΠΈ, ΡΠ°ΠΌ Π²ΡΡ Π½Π° Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΎΠΌ. ΠΡΠ»ΠΈ Π½Π΅ ΡΠ²Π΅ΡΠ΅Π½Ρ, ΡΡΠΎ Π΄Π΅Π»Π°Π΅ΡΠ΅ β Π»ΡΡΡΠ΅ Π²ΠΎΠΎΠ±ΡΠ΅ Π½Π΅ Π΄Π΅Π»Π°ΠΉΡΠ΅.
ΠΠΎΡΡΠ΄ΠΎΠΊ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ ΡΠ°ΠΊΠΎΠ²:
ΠΠ° Π²ΡΡΠΊΠΈΠΉ ΡΠ»ΡΡΠ°ΠΉ Ρ ΠΎΡΡΠ°Π²Π»Ρ ΡΡΡ ΡΡΠΈ ΡΡΡΠ»ΠΊΠΈ, Π²Π΄ΡΡΠ³, ΠΊΡΠΎ-ΡΠΎ Π·Π°ΡΡΠΎΠΏΠΎΡΠΈΠ»ΡΡ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ-ΡΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠ΅ ΠΈ ΡΠ΅ΡΠΈΠ» ΡΠΏΡΡΡΠΈΡΡΡΡ Π² ΡΠ°ΠΌΡΠΉ Π½ΠΈΠ· ΡΡΠ°ΡΡΠΈ, ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΌΠΎΠ³ΡΡ:
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΠΠΎΡ ΠΌΡ ΠΈ Π΄ΠΎΠ±ΡΠ°Π»ΠΈΡΡ Π΄ΠΎ ΠΊΡΠ»ΡΠΌΠΈΠ½Π°ΡΠΈΠΈ Π½Π°ΡΠ΅Π³ΠΎ Π·Π΄Π΅ΡΡ ΠΎΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΡ ΠΠΆΠ°Π²Ρ ΠΈ Π²Π΅Π±-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π½Π° Π½Π΅ΠΉ. Π‘Π»ΠΎΠΆΠ½ΠΎ? ΠΠ°. ΠΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ? ΠΠ°. ΠΡΠ΅, Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ Π²ΡΠ΅ ΡΠ΅ΡΠ²ΠΈΡΡ, Π±ΡΠ΄Ρ ΡΠΎ, ΠΏΠΎΠΈΡΠΊΠΎΠ²Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° Ρ ΠΌΠΈΠ»Π»ΠΈΠ°ΡΠ΄Π°ΠΌΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ², Π±ΡΠ΄Ρ ΡΠΎ Π²ΠΈΠ΄Π΅ΠΎ-ΡΠ΅ΡΠ²ΠΈΡ Ρ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Π°ΠΌΠΈ ΡΡΡΠΈΠΌ-ΠΊΠ°Π½Π°Π»ΠΎΠ² β Π²ΡΡ ΡΡΡΠΎΠΈΡΡΡΡ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ. ΠΡΠ΄Π°ΡΡ β Π·Π°Π±ΡΠ°ΡΡ Π΄Π°Π½Π½ΡΠ΅. ΠΠΎΠ½ΠΈΠΌΠ°Ρ ΡΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΏΠΈΡΠ°ΡΡ Π»ΡΠ±ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ, ΡΠ΅ΡΠ²ΠΈΡ ΠΈΠ»ΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ.
Π― Π½Π΅ ΡΡΠ°Π½Ρ Π»ΡΠΊΠ°Π²ΠΈΡΡ ΠΈ ΠΎΠ±ΠΌΠ°Π½ΡΠ²Π°ΡΡ Π²Π°Ρ ΡΠ²Π°ΠΆΠ°Π΅ΠΌΡΠ΅ ΡΠΈΡΠ°ΡΠ΅Π»ΠΈ. ΠΡΡΠ΄ Π»ΠΈ Π²Ρ Π·Π° 2 ΠΈΠ»ΠΈ 3 Π½Π΅Π΄Π΅Π»ΠΈ ΡΡΠ°Π½Π΅ΡΠ΅ ΡΡΠΏΠ΅Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»Π°ΠΌΠΈ ΠΈ Π±ΡΠ΄Π΅ΡΠ΅ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎ ΠΏΠΈΡΠ°ΡΡ ΠΊΠΎΠ΄. ΠΡΠΎΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡΠΈΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠΎΠΌ ΠΈ Π΄ΠΎΠ»Π³ΠΈΠΌΠΈ Π½ΠΎΡΠ°ΠΌΠΈ. Π§Π΅ΠΌ Π΄Π°Π»ΡΡΠ΅ Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ Π·Π°Π»Π°Π·ΠΈΡΡ Π² Π΄Π΅Π±ΡΠΈ, ΡΠ΅ΠΌ Π±ΠΎΠ»ΡΡΠ΅ Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ, ΡΡΠΎ Π²Ρ ΡΠ°ΠΊ ΠΌΠ°Π»ΠΎ Π·Π½Π°Π΅ΡΠ΅. ΠΠΎΡΠΎΠ³Ρ ΠΎΡΠΈΠ»ΠΈΡ ΠΈΠ΄ΡΡΠΈΠΉ, Π²ΠΏΠ΅ΡΠ΅Π΄, Π΄Π΅ΡΠ·Π°ΠΉΡΠ΅.
ΠΠΏΠ΅ΡΠ΅Π΄. ΠΡΠΈΡΠ»ΠΎ Π²ΡΠ΅ΠΌΡ Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ. Π‘ΡΠ°ΡΠ΅ΡΡΠΈΠΌ ΠΡΡΠΎΠ²Ρ ΠΈ ΠΡΠΈΠ½Ρ ΠΏΠΎΡΠ° ΡΠΉΡΠΈ Π½Π° ΠΏΠΎΠΊΠΎΠΉ, Π²ΡΠ΅ΠΌΡ ΠΈΡ ΡΠ»Π°Π²Ρ ΡΠΆΠ΅ ΠΏΡΠΎΡΠ»ΠΎ, ΠΏΡΠΈΡΠ»ΠΎ Π²ΡΠ΅ΠΌΡ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΡΡΠ΅Π±Π½ΠΈΠΊΠΈ ΠΈΡΡΠΎΡΠΈΠΈ ΠΈ ΡΠΏΠΈΡΠΊΠΈ Forbs. Π ΠΊΡΠΎ Π·Π½Π°Π΅Ρ, ΠΌΠΎΠΆΠ΅Ρ ΡΡΡ ΡΡΠ°ΡΡΡ ΡΠΈΡΠ°Π΅Ρ ΡΠΎΡ, ΠΊΡΠΎ Π² ΡΠ²ΠΎΡ Π²ΡΠ΅ΠΌΡ Π½Π°ΠΏΠΈΡΠ΅Ρ ΠΎΡΠ»ΠΈΡΠ½Π΅ΠΉΡΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π·Π°ΡΠΌΠΈΡ ΡΠΎΠ±ΠΎΠΉ ΡΠ°ΠΊΠΈΡ Π³ΠΈΠ³Π°Π½ΡΠΎΠ² ΠΊΠ°ΠΊ Google, Facebook ΠΈ Π΄ΡΡΠ³ΠΈΡ . Π£Π΄Π°ΡΠΈ, ΡΠΏΠ°ΡΠΈΠ±ΠΎ, ΡΡΠΎ Π΄ΠΎΡΠΈΡΠ°Π»ΠΈ Π΄ΠΎ ΠΊΠΎΠ½ΡΠ°.
Π‘ΠΎΠ·Π΄Π°ΡΠΌ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ Java Servlets
ΠΠ²ΡΠΎΡΠΈΠ·ΡΠΉΡΠ΅ΡΡ
Π‘ΠΎΠ·Π΄Π°ΡΠΌ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ Java Servlets
ΠΠ΄Π½ΠΎΠΉ ΠΈΠ· ΡΠ°ΠΌΡΡ ΠΏΡΠΈΡΡΠ½ΡΡ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠ΅ΠΉ Java ΡΠ²Π»ΡΠ΅ΡΡΡ Π΅Ρ ΠΌΠ½ΠΎΠ³ΠΎΠ³ΡΠ°Π½Π½Π°Ρ ΠΏΡΠΈΡΠΎΠ΄Π°. ΠΠΎΠ½Π΅ΡΠ½ΠΎ, ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΡΡ Π΄Π΅ΡΠΊΡΠΎΠΏΠ½ΡΡ ΠΈ Π΄Π°ΠΆΠ΅ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ β ΡΡΠΎ Π·Π΄ΠΎΡΠΎΠ²ΠΎ. ΠΠΎ ΡΡΠΎ, Π΅ΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΠΉΡΠΈ Ρ ΠΏΡΠΎΡΠΎΡΠ΅Π½Π½ΡΡ Π΄ΠΎΡΠΎΠΆΠ΅ΠΊ ΠΈ Π·Π°ΠΉΡΠΈ Π½Π° ΡΠ΅ΡΡΠΈΡΠΎΡΠΈΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ web ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° Java? ΠΠ»Ρ Π²Π°Ρ Π΅ΡΡΡ Ρ ΠΎΡΠΎΡΠ°Ρ Π½ΠΎΠ²ΠΎΡΡΡ: Π² ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ΅ Ρ ΡΠ·ΡΠΊΠΎΠΌ ΠΈΠ΄ΡΡ ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΡΠΉ Servlet API, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²Π°ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π½Π°Π΄ΡΠΆΠ½ΡΠ΅ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π±Π΅Π· ΠΎΡΠΎΠ±ΡΡ Ρ Π»ΠΎΠΏΠΎΡ.
ΠΡΠΎ ΡΡΠ°ΡΡΡ Π΄Π»Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡΡΠΈΡ . ΠΡΠ»ΠΈ Π²Ρ ΡΠΎΠ»ΡΠΊΠΎ Π½Π°ΡΠΈΠ½Π°Π΅ΡΠ΅ Π·Π½Π°ΠΊΠΎΠΌΡΡΠ²ΠΎ Ρ Java, ΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ ΠΏΡΠΎΠΉΡΠΈ Π±ΡΡΡΡΡΠΉ ΡΡΠ°ΡΡ, ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π²ΠΈΠ΄Π΅ΠΎΠΊΡΡΡ ΠΈ Π²ΡΠ±ΡΠ°ΡΡ ΠΎΠ΄Π½Ρ ΠΈΠ· ΠΊΠ½ΠΈΠ³ Π΄Π»Ρ Π½ΠΎΠ²ΠΈΡΠΊΠΎΠ².
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° Java Ρ ΠΏΠΎΠΌΠΎΡΡΡ Servlets
ΠΡΡΡΠ΅ΡΠ°ΠΉΡΠ΅ ΡΠ΅ΡΠ²Π»Π΅ΡΡ, ΠΎΡΠΎΠ±ΡΠΉ ΡΠΈΠΏ Java-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ, Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ Π² ΠΏΡΠ΅Π΄Π΅Π»Π°Ρ Π²Π΅Π±-ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° (ΡΠ°ΠΊΠΆΠ΅ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠΌ ΡΠ΅ΡΠ²Π»Π΅ΡΠΎΠ², ΠΊΠ°ΠΊ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Tomcat ΠΈ Jelly), ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π·Π°ΠΏΡΠΎΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ² ΠΈ ΠΎΡΠ²Π΅ΡΡ ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΏΡΠΎΡΡΠΎ ΠΈ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ. Π‘Π΅ΠΉΡΠ°Ρ Π½Π΅ Π²ΡΠ΅ΠΌΡ ΠΈ Π½Π΅ ΠΌΠ΅ΡΡΠΎ Π΄ΠΎΡΠΎΡΠ½ΠΎ ΠΎΠ±ΡΡΡΠ½ΡΡΡ Π²Π°ΠΌ, ΡΡΠΎ ΠΈΠ· ΡΠ΅Π±Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ΅ΡΠ²Π»Π΅Ρ. ΠΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ ΡΠ΅ΡΠ²Π»Π΅ΡΡ ΡΠΎΠ·Π΄Π°ΡΡΡΡ ΠΈ ΡΠ½ΠΈΡΡΠΎΠΆΠ°ΡΡΡΡ ΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°ΠΌΠΈ, Π° Π½Π΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠΌ, ΠΈ Π΄Π΅ΠΉΡΡΠ²ΡΡΡ ΠΊΠ°ΠΊ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΠΉ ΡΡΠΎΠ²Π΅Π½Ρ ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°ΠΌΠΈ (ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, Π²Π΅Π±-Π±ΡΠ°ΡΠ·Π΅ΡΠ°ΠΌΠΈ) ΠΈ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ, Π·Π°ΠΏΡΡΠ΅Π½Π½ΡΠΌΠΈ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ ).
Π‘Π΅ΡΠ²Π»Π΅Ρ β ΠΊΠ»Π°ΡΡΠ½Π°Ρ ΡΡΡΠΊΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠΌΠΈΠΌΠΎ Π²ΡΠ΅Π³ΠΎ ΠΏΡΠΎΡΠ΅Π³ΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΎΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ ΡΠ΅ΡΠ΅Π· GET ΠΈ POST-Π·Π°ΠΏΡΠΎΡΡ, ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ cookie ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ ΡΠ΅Π°Π½ΡΠ°. Π Π΅ΡΡ ΠΎΠ½Π° ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ Π΄Π°Π½Π½ΡΠ΅ ΡΠ΅ΡΠ΅Π· Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΡΠΎΠ²Π½ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ Π²ΡΡ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΡ ΠΊΠ°ΠΊ Π² ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΌ, ΡΠ°ΠΊ ΠΈ Π² Π±ΠΈΠ½Π°ΡΠ½ΠΎΠΌ ΡΠΎΡΠΌΠ°ΡΠ°Ρ (HTML, XML, PDF, JPG, GIF ΠΈ Ρ.Π΄.), Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ ΡΠ»ΡΡΠ°ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Java Server Pages (JSP) ΡΠ°ΠΉΠ»Ρ.
ΠΡΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ Π½Π°ΡΠΈΠ½Π°ΡΡ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠ΅ΡΠ²Π»Π΅ΡΠ°ΠΌΠΈ ΡΠ΅ΡΠ΅Π· ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ. ΠΡ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΏΡΠΎΡΡΠΎΠ΅ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°ΠΌ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°ΡΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΡΠΎΡΡΠΎΠΉ HTML-ΡΠΎΡΠΌΡ. ΠΠ°Π½Π½ΡΠ΅, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°ΠΌΠΈ, Π±ΡΠ΄ΡΡ ΡΠΎΠ±ΠΈΡΠ°ΡΡΡΡ ΡΠ΅ΡΠ²Π»Π΅ΡΠΎΠΌ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΡΡΡΡ Π²Π°Π»ΠΈΠ΄Π°ΡΠΎΡΠ°ΠΌΠΈ.
Π Π°Π·Π±ΠΈΡΠ°Π΅ΠΌΡΡ Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΠΌΠΈ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ
Π§ΡΠΎΠ±Ρ Π²Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π»ΠΈ ΡΡΡΡΠΊΡΡΡΡ Π½Π°ΡΠ΅Π³ΠΎ Π±ΡΠ΄ΡΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π²ΠΎΡ ΠΊΠ°ΠΊ ΠΎΠ½Π° Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ:
ΠΠ΅ΡΠ²ΡΠΌ ΡΠ°Π³ΠΎΠΌ ΠΊ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΠ° ΡΠ°Π·Π²ΡΡΡΡΠ²Π°Π½ΠΈΡ. ΠΠ½ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΠΊΠ°ΠΊ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΡΠ°Π·Π²ΡΡΠ½ΡΡΠΎ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΡΡΠ΅Π΄Π΅. ΠΠΎΠ³Π΄Π° Π΄Π΅Π»ΠΎ ΠΊΠ°ΡΠ°Π΅ΡΡΡ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΡΠ°Π·Π²ΡΡΡΡΠ²Π°Π½ΠΈΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΏΡΠΎΡΡΠΎΠΉ XML-ΡΠ°ΠΉΠ», Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠΉ web.xml ΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΡΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Java EE. Π Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΎΠ½ Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ°ΠΊ:
3β4 Π΄Π΅ΠΊΠ°Π±ΡΡ, ΠΠ½Π»Π°ΠΉΠ½, ΠΠ΅cΠΏΠ»Π°ΡΠ½ΠΎ
Π’Π°ΠΊ ΠΊΠ°ΠΊ Π½Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Servlet API ΠΈ Java Servlet Pages (JSP) Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°, Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π·Π°Π³ΡΡΠ·ΠΈΡΡ Π²ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ JAR. Maven ΡΠ΄Π΅Π»Π°Π΅Ρ Π·Π° Π½Π°Ρ ΡΡΡΠ΄Π½ΡΡ ΡΠ°Π±ΠΎΡΡ, Π²ΠΎΡ ΠΊΠ°ΠΊ Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ°ΠΉΠ» POM:
ΠΡΠ»ΠΈ Π³ΠΎΠ²ΠΎΡΠΈΡΡ ΠΏΡΠΎΡΡΠΎ, pom.xml ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ Π²ΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠ΅ΡΠ²Π»Π΅ΡΠ°ΠΌΠΈ: JSP, Java Standard Tag Library (JSTL) ΠΈ Java Expression Language (JEL).
ΠΡΠ°ΠΊ, ΠΌΡ ΡΠΆΠ΅ ΡΠΎΠ·Π΄Π°Π»ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ΄Π½Π°ΠΊΠΎ Π² ΡΠ΅ΠΊΡΡΠ΅ΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ ΠΎΠ½ΠΎ Π±ΡΠΊΠ²Π°Π»ΡΠ½ΠΎ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π΄Π΅Π»Π°Π΅Ρ. ΠΡ Ρ ΠΎΡΠΈΠΌ, ΡΡΠΎΠ±Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΡ ΠΌΠΎΠ³Π»ΠΈ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°ΡΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ HTML-ΡΠΎΡΠΌΡ, ΠΏΠΎΡΡΠΎΠΌΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅, ΡΡΠΎ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ, β ΡΡΠΎ ΡΠΎΠ·Π΄Π°ΡΡ JSP-ΡΠ°ΠΉΠ»Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ Π²ΡΡΠ΅ΡΠΏΠΎΠΌΡΠ½ΡΡΡΡ ΡΠΎΡΠΌΡ ΠΈ Π΄Π°Π½Π½ΡΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΏΠΎΡΠ»Π΅ ΡΡΠΏΠ΅ΡΠ½ΠΎΠ³ΠΎ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ. ΠΡΠΈΠΌ ΠΌΡ ΡΠ΅ΠΉΡΠ°Ρ ΠΈ Π·Π°ΠΉΠΌΡΠΌΡΡ.
Π Π°Π±ΠΎΡΠ°Π΅ΠΌ Π½Π°Π΄ Π²Π½Π΅ΡΠ½ΠΈΠΌ Π²ΠΈΠ΄ΠΎΠΌ
ΠΠ½Π΅ΡΠ½ΠΈΠΉ Π²ΠΈΠ΄ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π±ΡΠ΄Π΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΡΡ Π΄Π²ΡΠΌΡ JSP-ΡΠ°ΠΉΠ»Π°ΠΌΠΈ β Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ MVC ΠΎΠ½ΠΈ Π½Π°Π·ΡΠ²Π°ΡΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡΠΌΠΈ. ΠΠ΅ΡΠ²ΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΎΡΠ²Π΅ΡΠ°ΡΡ Π·Π° ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΠΎΡΠΌΡ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ ΠΎΡΠΈΠ±ΠΎΠΊ, Π²ΡΠ·Π²Π°Π½Π½ΡΡ ΠΏΠΎΡΠ»Π΅ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π²Π²Π΅Π΄ΡΠ½Π½ΡΡ Π΄Π°Π½Π½ΡΡ . ΠΡΠΎΡΠΎΠΉ Π±ΡΠ΄Π΅Ρ ΠΎΠ±ΡΡΠ½ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΠ΅ΠΉ ΠΏΡΠΈΠ²Π΅ΡΡΡΠ²ΠΈΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π±ΡΠ΄ΡΡ ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ Π΄Π°Π½Π½ΡΠ΅, Π²Π²Π΅Π΄ΡΠ½Π½ΡΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠΌ, ΠΏΠΎΡΠ»Π΅ ΡΡΠΏΠ΅ΡΠ½ΠΎΠ³ΠΎ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ.
ΠΠΎΡ ΠΏΠ΅ΡΠ²ΡΠΉ JSP-ΡΠ°ΠΉΠ»:
Π‘ΠΊΠΎΡΠΎ ΠΌΡ ΡΠ²ΠΈΠ΄ΠΈΠΌ, ΠΊΠ°ΠΊ ΡΠ΅ΡΠ²Π»Π΅Ρ ΡΠ²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ Ρ URL processcustomer ΠΈ ΠΊΠ°ΠΊ ΠΎΠ½ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΡΠ΅Ρ Ρ Π²Π²Π΅Π΄ΡΠ½Π½ΡΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ. Π ΠΏΠΎΠΊΠ° Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° JSP-ΡΠ°ΠΉΠ», ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° ΡΡΡΠ°Π½ΠΈΡΡ ΠΏΡΠΈΠ²Π΅ΡΡΡΠ²ΠΈΡ:
Π’Π΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ ΡΠ°Π·ΠΎΠ±ΡΠ°Π»ΠΈΡΡ Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΡΡΡΠ°Π½ΠΈΡ, ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΡΠ°Π³ΠΎΠΌ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ΅ΡΠ²Π»Π΅ΡΠ°, ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ Π·Π° ΡΠ±ΠΎΡ Π΄Π°Π½Π½ΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΈΠ· POST-Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΈ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ ΠΏΡΠΎΡΡΡΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ.
ΠΠΈΡΠ΅ΠΌ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ
ΠΠ°ΠΏΠΈΡΠ°ΡΡ ΡΠ΅ΡΠ²Π»Π΅Ρ, ΡΠΏΠΎΡΠΎΠ±Π½ΡΠΉ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· ΡΠΎΡΠΌΡ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ, ΠΏΡΠΎΡΠ΅ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ. ΠΡΡ, ΡΡΠΎ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ, β ΡΡΠΎ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡ Π΄Π»Ρ ΠΊΠ»Π°ΡΡΠ° HttpServlet ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Ρ doGet() ΠΈΠ»ΠΈ doPost() (ΠΈΠ»ΠΈ ΠΎΠ±Π°, Π΅ΡΠ»ΠΈ Π½Π°Π΄ΠΎ). Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠ΅ΡΠ²Π»Π΅Ρ Π±ΡΠ΄Π΅Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Ρ Π΄Π°Π½Π½ΡΠΌΠΈ, ΠΏΠΎΡΡΡΠΏΠ°ΡΡΠΈΠΌΠΈ ΠΈΠ· POST-Π·Π°ΠΏΡΠΎΡΠΎΠ².
ΠΠΎΡ ΠΊΠ°ΠΊ ΠΎΠ½ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ:
ΠΠ°Π»ΠΈΠ΄Π°ΡΠΎΡΡ β ΡΡΠΎ ΠΏΡΠΎΡΡΡΠ΅ ΠΊΠ»Π°ΡΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈ ΡΡΡΠΎΠΊΠ° ΠΏΡΡΡΠΎΠΉ ΠΈ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ Π»ΠΈ email ΠΊΠ°ΠΊ email. ΠΠ° GitLab Π°Π²ΡΠΎΡΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π½Π° ΠΈΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ.
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π²Π°Π»ΠΈΠ΄Π°ΡΠΈΠΈ Π²Π»ΠΈΡΠ΅Ρ Π½Π° Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠΈΠΉ Ρ ΠΎΠ΄ ΡΠΎΠ±ΡΡΠΈΠΉ: Π΅ΡΠ»ΠΈ Π΄Π°Π½Π½ΡΠ΅ Π½Π΅ Π²Π°Π»ΠΈΠ΄Π½Ρ, ΠΊΠ»ΠΈΠ΅Π½Ρ ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΡΠ΅ΡΠ΅Π· ΠΎΠ±ΡΠ΅ΠΊΡ RequestDispatcher Π½Π° ΡΡΡΠ°Π½ΠΈΡΡ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ, Π³Π΄Π΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ. ΠΡΠ»ΠΈ Π²ΡΡ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅, ΡΠΎ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ ΡΡΡΠ°Π½ΠΈΡΠ° ΠΏΡΠΈΠ²Π΅ΡΡΡΠ²ΠΈΡ.
ΠΡΠ°ΠΊ, ΠΌΡ ΡΠΎΠ·Π΄Π°Π»ΠΈ ΡΠ΅Π»ΠΎΠ΅ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Java, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ² Ρ ΠΏΠΎΠΌΠΎΡΡΡ HTML-ΡΠΎΡΠΌΡ, Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΡΠ΅ΡΠ²Π»Π΅ΡΠ° ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ JSP-ΡΠ°ΠΉΠ»ΠΎΠ². ΠΠΎΡΠ° Π΅Π³ΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡ.
ΠΠ°ΠΏΡΡΠΊΠ°Π΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅
ΠΠ»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΎΠ΄Π΅Π»Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ°Π³ΠΈ:
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΠΡΠ°ΠΊ, Π²Ρ ΠΏΡΠΈΠΎΠ±ΡΠ΅Π»ΠΈ Π²ΡΠ΅ Π½Π°Π²ΡΠΊΠΈ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° Java Π±Π΅Π· Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΏΡΠΈΠ±Π΅Π³Π°ΡΡ ΠΊ ΡΠ»ΠΎΠΆΠ½ΡΠΌ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ°ΠΌ. ΠΡΡ, ΡΡΠΎ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ, β Servlet API, ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ Π²ΡΠΎΠ΄Π΅ JSP Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ ΡΡΠ΅Π΄ΡΡΠ²Π° Java. ΠΠ΄ΠΎΡΠΎΠ²ΠΎ, ΠΏΡΠ°Π²Π΄Π°?
Π‘ΡΠΎΠΈΡ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΊΠ»Π°ΡΡΠ° CustomerController ΠΏΠΎΠ΄ΡΠ΅ΡΠΊΠΈΠ²Π°Π΅Ρ Π΄ΠΎΡΡΠΎΠΈΠ½ΡΡΠ²Π° ΠΈ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ ΡΠ΅ΡΠ²Π»Π΅ΡΠΎΠ²: Ρ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ, ΠΎΠ½ Π²ΠΊΡΠ°ΡΡΠ΅ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ Π»Π΅Π³ΠΊΠΎ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π·Π°ΠΏΡΠΎΡΠ° ΠΈ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΎΡΠ²Π΅ΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΡ Π² ΡΠ°Π·Π½ΡΡ ΡΠΎΡΠΌΠ°ΡΠ°Ρ . ΠΠΎ ΡΡΠ° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ ΠΈΠΌΠ΅Π΅Ρ ΡΠ²ΠΎΡ ΡΠ΅Π½Ρ: ΠΎΠ±Π΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² HttpServletResponse ΠΈ HttpServletResponse ΡΠ²Π»ΡΡΡΡΡ ΠΎΠ±ΡΡΠ½ΡΠΌΠΈ Π»ΠΎΠΊΠ°ΡΠΎΡΠ°ΠΌΠΈ ΡΠ»ΡΠΆΠ±. ΠΠ΅Π»ΡΠ·Ρ ΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ ΡΡΠΎ ΠΏΠ»ΠΎΡ ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π»ΠΎΠΊΠ°ΡΠΎΡΡ ΠΏΡΠΎΡΡΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ Π΄Π°Π½Π½ΡΠ΅. ΠΠ΄Π½Π°ΠΊΠΎ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡΡ, ΡΡΠΎ ΡΡΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π±ΡΠ΄ΡΡ Π²ΡΠ΅Π³Π΄Π° ΠΏΡΠΈΠ²ΡΠ·Π°Π½Ρ ΠΊ ΡΠ΅ΡΠ²Π»Π΅ΡΡ.
ΠΠΈΡΠ΅ΠΌ ΠΏΡΠΎΡΡΠΎΠ΅ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Spring MVC, Spring Data JPA ΠΈ Hibernate
ΠΡΠΈΠ²Π΅Ρ, Π₯Π°Π±Ρ! ΠΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡ ΠΠ°ΡΠ΅ΠΌΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΡ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π° Β«Spring MVC + Spring Data JPA + Hibernate β CRUD ExampleΒ» Π°Π²ΡΠΎΡΠ° Nam Ha Minh.
Π ΡΡΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ ΠΏΠΎ Java Spring Π²Ρ ΡΠ·Π½Π°Π΅ΡΠ΅, ΠΊΠ°ΠΊ Π½Π°ΡΡΡΠΎΠΈΡΡ Spring MVC ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Spring Data JPA, ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π² ΠΏΡΠΎΡΡΠΎΠ΅ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ ΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°Ρ .
ΠΠΎ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΡΡΠΎΠ³ΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π°, Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Java ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΠΎΠ΅ Π½Π° ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΡ Spring MVC ΠΈ Spring Data JPA, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ Π² ΡΡΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅: Java 8, Apache Tomcat 9, MySQL Server 5.7, Eclipse IDE 4.7 (Oxygen), Spring Framework 5.1, Hibernate 5.4, Spring Data JPA 2.1.5 ΠΈ Servlet 3.1.
ΠΠ°ΡΠ½ΡΠΌ Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ .
1. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
ΠΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ MySQL. Π Π½Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅Ρ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π΄Π°Π½Π½ΡΠΌΠΈ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ customer, ΠΊΠΎΡΠΎΡΠ°Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΡΡ Π΅ΠΌΠ΅ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ sales. Π’Π°Π±Π»ΠΈΡΠ° customer ΠΈΠΌΠ΅Π΅Ρ 4 ΠΏΠΎΠ»Ρ: id, name, email ΠΈ address:
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ MySQL ΡΠΊΡΠΈΠΏΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΡ Π΅ΠΌΡ ΠΈ ΡΠ°Π±Π»ΠΈΡΡ:
2. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π² Eclipse
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ Dynamic Web Project Π² Eclipse, ΠΈ ΠΊΠΎΠ½Π²Π΅ΡΡΠΈΡΡΠΉΡΠ΅ Π΅Π³ΠΎ Π² ΠΏΡΠΎΠ΅ΠΊΡ Maven: Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π½Π°ΠΆΠΌΠΈΡΠ΅ ΠΠΠ ΠΏΠΎ ΠΏΡΠΎΠ΅ΠΊΡΡ, Π²ΡΠ±Π΅ΡΠ΅ΡΠ΅ Configure > Convert to Maven Project. Π ΠΎΡΠΊΡΡΠ²ΡΠ΅ΠΌΡΡ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΌ ΠΎΠΊΠ½Π΅ Create new POM Π²Π²Π΅Π΄ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ:
β Group Id: net.codejava
β Artifact Id: CustomerManager
Π’Π°ΠΊΠΆΠ΅ ΡΠ±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Π²Π΅ΡΡΠΈΡ JRE Π΄Π»Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ° Java 8 ΠΈΠ»ΠΈ Π½ΠΎΠ²Π΅Π΅.
ΠΠ°ΡΠ΅ΠΌ, ΠΎΡΠΊΡΠΎΠΉΡΠ΅ pom.xml (ΡΠ°ΠΉΠ» Maven), ΡΡΠΎΠ±Ρ Π½Π°ΡΡΡΠΎΠΈΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°. ΠΠ±ΡΡΠ²ΠΈΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° Π²Π΅ΡΡΠΈΠΉ Π΄Π»Ρ Spring ΠΈ Hibernate Frameworks:
Π£ΠΊΠ°ΠΆΠΈΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ Π΄Π»Ρ Spring Framework:
ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Spring MVC:
ΠΠ»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Spring Data JPA:
ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Hibernate Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ JPA, ΠΏΠΎΡΡΠΎΠΌΡ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΡΠ»Π΅Π΄ΡΡΡΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ:
ΠΠ»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΠ°Π»ΠΎ Ρ MySQL, Π½Π°ΠΌ Π½ΡΠΆΠ½Π° Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ Π΄Π»Ρ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° MySQL JDBC:
Π ΡΠ΅ΠΏΠ΅ΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ Π΄Π»Ρ Java Servlet, JSP ΠΈ JSTL:
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π΄Π²Π° Java ΠΏΠ°ΠΊΠ΅ΡΠ° Π² ΠΊΠΎΡΠ½Π΅ ΠΏΡΠΎΠ΅ΠΊΡΠ°:
β net.codejava.config : Π΄Π»Ρ ΠΊΠ»Π°ΡΡΠΎΠ² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ.
β net.codejava.customer : Π΄Π»Ρ ΠΊΠ»Π°ΡΡΠΎΠ² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
3. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π° Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ JPA
Π Π²ΠΏΠΈΡΠΈΡΠ΅ Π² ΡΡΠΎΡ ΡΠ°ΠΉΠ» ΠΊΠΎΠ΄ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΡΠΉ Π½ΠΈΠΆΠ΅:
ΠΠ°ΠΊ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΈΠ΄Π΅ΡΡ, ΠΌΡ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ ΡΠ²ΠΎΠΉΡΡΠ²Π° Π΄Π»Ρ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Ρ Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½ΡΡ , ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ URL, user, password ΠΈ ΠΊΠ»Π°ΡΡ JDBC Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ°. Π’Π°ΠΊ ΠΆΠ΅ ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΈΠΌΡ SalesDB Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π½Π°ΠΌΠΈ Π² ΠΊΠΎΠ΄Π΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ.
4. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Model Class
5. ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Spring MVC ΠΈ Spring Data JPA
ΠΠ°Π»Π΅Π΅, Π½Π°ΠΏΠΈΡΠ΅ΠΌ Java ΠΊΠΎΠ΄ Π΄Π»Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Spring MVC ΠΈ Spring Data JPA. ΠΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Java, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½Π° ΠΏΡΠΎΡΠ΅, ΡΠ΅ΠΌ XML.
ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° Spring Dispatcher Servlet
ΠΠ»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Spring MVC Π² Π½Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, Π½Π°ΠΌ Π½Π°Π΄ΠΎ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°ΡΡ Spring Dispatcher Servlet ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π½Π°ΠΏΠΈΡΠ°Π² ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠ»Π°ΡΡ:
ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° Spring MVC
Π ΡΡΠΎΠΌ ΠΊΠ»Π°ΡΡΠ΅ ΠΌΡ ΡΠΎΠ·Π΄Π°ΡΠΌ bean-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°ΡΠΏΠΎΠ·Π½Π°ΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ (View), Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΊΠ°Π·Π°Π½ΠΈΡ ΠΏΡΠ΅ΡΠΈΠΊΡΠ° ΠΈ ΡΡΡΡΠΈΠΊΡΠ° Π΄Π»Ρ ΡΡΠΈΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠΉ. ΠΠΎΡΡΠΎΠΌΡ ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ views Π²Π½ΡΡΡΠΈ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° WebContent/WEB-INF Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ JSP ΡΠ°ΠΉΠ»ΠΎΠ².
ΠΠ΄Π΅ΡΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Spring MVC.
ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° Spring Data JPA
ΠΠ΄Π΅ΡΡ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π΄Π²Π΅ Π²Π°ΠΆΠ½ΡΠ΅ Π°Π½Π½ΠΎΡΠ°ΡΠΈΠΈ:
ΠΡΠΎ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½Π°Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ°Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Spring Data JPA.
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Repository Interface
7. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Service Class
ΠΠ°ΡΠ΅ΠΌ, ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΠΊΠ»Π°ΡΡ CustomerService :
ΠΡΠΎ ΠΏΠΎΡ ΠΎΠΆΠ΅ Π½Π° ΠΌΠ°Π³ΠΈΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΌΡ Π½Π΅ ΠΏΠΈΡΠ΅ΠΌ DAO ΠΊΠΎΠ΄, Π½ΠΎ Spring Data JPA Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ.
8. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° Spring MVC
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΠΊΠ»Π°ΡΡ CustomerContoroller Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π²ΡΠ΅Ρ Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΎΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ²:
ΠΡ Π½Π°ΠΏΠΈΡΠ΅ΠΌ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π² ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΡΠ΅ΠΊΡΠΈΡΡ .
9. ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΏΠΈΡΠΊΠ° ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ²
ΠΠ° Π΄ΠΎΠΌΠ°ΡΠ½Π΅ΠΉ ΡΡΡΠ°Π½ΠΈΡΠ΅ Π½Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π±ΡΠ΄ΡΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ Π²ΡΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΡ, Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΠΈΠΉ ΠΌΠ΅ΡΠΎΠ΄ Π² Π½Π°Ρ CustomerController ΠΊΠ»Π°ΡΡ:
ΠΠΎΠΌΠ°ΡΠ½ΡΡ ΡΡΡΠ°Π½ΠΈΡΠ° ΠΏΡΠΎΡΠΌΠΎΡΡΠ° ( index.jsp ) Π΄ΠΎΠ»ΠΆΠ½Π° Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
10. ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ
ΠΠ»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°, Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°ΡΡ Π΄Π²Π° ΠΌΠ΅ΡΠΎΠ΄Π°-ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°. Π ΠΏΠ΅ΡΠ²ΡΠΉ ΠΈΠ· Π½ΠΈΡ Π±ΡΠ΄Π΅Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ Π½ΠΎΠ²ΡΡ ΡΠΎΡΠΌΡ Π΄Π»Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°:
ΠΠ°ΠΏΠΈΡΠ΅ΠΌ ΡΠ°ΠΌΡ JSP ΡΠΎΡΠΌΡ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ new_customer.jsp :
Π’Π΅ΠΏΠ΅ΡΡ Π½Π° Π³Π»Π°Π²Π½ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΠ΅ Ρ Π²Π°Ρ ΠΏΠΎΡΠ²ΠΈΡΡΡ ΡΡΡΠ»ΠΊΠ° New Customer, ΠΏΡΠΈ Π½Π°ΠΆΠ°ΡΠΈΠΈ Π½Π° ΠΊΠΎΡΠΎΡΡΡ Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ Π½ΠΎΠ²ΡΡ ΡΠΎΡΠΌΡ:
ΠΡΠΎΡΠΎΠΉ ΠΌΠ΅ΡΠΎΠ΄-ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π±ΡΠ΄Π΅Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ Save Π² ΡΡΠΎΠΉ ΡΠΎΡΠΌΠ΅:
ΠΠ°ΠΊ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΈΠ΄Π΅ΡΡ, ΠΎΠ½Π° ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Π½Π° Π΄ΠΎΠΌΠ°ΡΠ½ΡΡ ΡΡΡΠ°Π½ΠΈΡΡ, ΠΏΠΎΡΠ»Π΅ ΡΡΠΏΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
11. ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ
Π§ΡΠΎΠ±Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°, Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΌΠ΅ΡΠΎΠ΄-ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π² ΠΊΠ»Π°ΡΡ CustomerController :
ΠΠ°ΠΆΠΌΠΈΡΠ΅ Π½Π° Π³ΠΈΠΏΠ΅ΡΡΡΡΠ»ΠΊΡ Edit ΡΡΠ΄ΠΎΠΌ Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠΌ Π½Π° Π΄ΠΎΠΌΠ°ΡΠ½Π΅ΠΉ ΡΡΡΠ°Π½ΠΈΡΠ΅, Π²ΡΠ·ΠΎΠ²Π΅ΡΡΡ ΡΠΎΡΠΌΠ° ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ Π²ΠΎΡ ΡΠ°ΠΊ:
ΠΠ΅ΡΠΎΠ΄-ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ ΠΊΠ½ΠΎΠΏΠΊΡ Save.
12. Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°
ΠΠ»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ, Π½Π°ΠΏΠΈΡΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΌΠ΅ΡΠΎΠ΄-ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π² ΠΊΠ»Π°ΡΡΠ΅ CustomerController :
ΠΠ°ΠΆΠΌΠΈΡΠ΅ Π½Π° Π³ΠΈΠΏΠ΅ΡΡΡΡΠ»ΠΊΡ Delete ΡΡΠ΄ΠΎΠΌ Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠΌ Π½Π° Π³Π»Π°Π²Π½ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΠ΅. ΠΠ»ΠΈΠ΅Π½Ρ ΡΠ΄Π°Π»ΠΈΡΡΡ, Π° ΡΠΏΠΈΡΠΎΠΊ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡΡ.
13. ΠΠΎΠΈΡΠΊ ΠΏΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°ΠΌ
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡ ΠΏΠΎΠΈΡΠΊΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈΡΠΊΠ°ΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ², Π²Π²ΠΎΠ΄Ρ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ. Π€ΡΠ½ΠΊΡΠΈΡ ΠΏΠΎΠΈΡΠΊΠ° ΠΈΡΠ΅Ρ ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΡΠ»ΠΎΠ²Π° Π² ΡΡΡΡ ΠΏΠΎΠ»ΡΡ : ΠΈΠΌΡ, email ΠΈ Π°Π΄ΡΠ΅Ρ, Π΄Π»Ρ ΡΠ΅Π³ΠΎ Π½Π°ΠΌ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ Π² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅ CustomerRepository :
ΠΠ°ΡΠ΅ΠΌ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄ Π² ΠΊΠ»Π°ΡΡ CustomerService :
Π’Π΅ΠΏΠ΅ΡΡ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄-ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π² ΠΊΠ»Π°ΡΡ CustomerController :
Π ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΡΡΠ°Π½ΠΈΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° ΠΏΠΎΠΈΡΠΊΠ° search.jsp :
ΠΠ»Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΠΎΠΈΡΠΊΠ°, Π²Π²Π΅Π΄ΠΈΡΠ΅ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ Π² ΠΏΠΎΠ»Π΅ ΠΏΠΎΠΈΡΠΊΠ° Π½Π° Π΄ΠΎΠΌΠ°ΡΠ½Π΅ΠΉ ΡΡΡΠ°Π½ΠΈΡΠ΅, ΠΈ Π½Π°ΠΆΠΌΠΈΡΠ΅ Enter. ΠΡ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ ΡΡΡΠ°Π½ΠΈΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° ΠΏΠΎΠΈΡΠΊΠ°:
ΠΡΠ²ΠΎΠ΄Ρ
Π Π΄Π°Π½Π½ΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ Π²Ρ ΡΠ·Π½Π°Π»ΠΈ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°ΡΡ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Spring MVC, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Spring Data JPA Π΄Π»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π΄Π°Π½Π½ΡΠΌ. ΠΠ°ΠΊ Π²Ρ ΠΌΠΎΠ³Π»ΠΈ Π²ΠΈΠ΄Π΅ΡΡ, Spring Data JPA Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΌΠ΅Π½ΡΡΠ°Π΅Ρ ΠΈ ΡΠΏΡΠΎΡΠ°Π΅Ρ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΠΈΡΠ°ΡΡ.
ΠΠ»Ρ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ, Π²ΠΎΡ ΡΡΡΡΠΊΡΡΡΠ° ΠΏΡΠΎΠ΅ΠΊΡΠ° Π² Eclipse IDE: