spring boot 2 Π»ΡΡΡΠΈΠ΅ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ Π΄Π»Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΠΎΠ² ΡΠ΅Π»ΠΈΠΏΠ΅ Π³ΡΡΡΠ΅ΡΡΠ΅Ρ 2020
ΠΠ½ΠΈΠ³Π° Β«Spring Boot 2: Π»ΡΡΡΠΈΠ΅ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ Π΄Π»Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΠΎΠ²Β»
ΠΡΠΈΠ²Π΅Ρ, Π₯Π°Π±ΡΠΎΠΆΠΈΡΠ΅Π»ΠΈ! Π₯ΠΎΡΠΈΡΠ΅ ΠΏΠΎΠ²ΡΡΠΈΡΡ ΡΠ²ΠΎΡ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΊΠΎΡΠΏΠΎΡΠ°ΡΠΈΠ²Π½ΡΡ
ΠΈ ΠΎΠ±Π»Π°ΡΠ½ΡΡ
Java-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ?
Π£Π²Π΅Π»ΠΈΡΡΡΠ΅ ΡΠΊΠΎΡΠΎΡΡΡ ΠΈ ΠΏΡΠΎΡΡΠΎΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠΎΠ² ΠΈ ΡΠ»ΠΎΠΆΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΈΠ·Π±Π°Π²ΠΈΠ²ΡΠΈΡΡ ΠΎΡ Π·Π°Π±ΠΎΡ ΠΏΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Spring.
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Spring Boot 2 ΠΈ ΡΠ°ΠΊΠΈΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ° Spring 5, ΠΊΠ°ΠΊ WebFlux, Security, Actuator, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ Micrometer, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡΠΈΠΉ Π½ΠΎΠ²ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΠ±ΠΎΡΠ° ΠΌΠ΅ΡΡΠΈΠΊ.
Π€ΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Spring
ΠΠ΄Π½Π° ΠΈΠ· ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΈΠ΄Π΅ΠΉ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ° Spring β ΠΏΠΎΠΎΡΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌΠΈ ΠΏΡΠΎΡΡΡΡ ΠΈ ΡΠ»Π°Π±ΠΎ ΡΠ²ΡΠ·Π°Π½Π½ΡΡ ΠΊΠ»Π°ΡΡΠΎΠ², ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ², Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΠ΅ΠΌΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π±ΠΎΠ»Π΅Π΅ Π½Π°Π΄Π΅ΠΆΠ½ΡΠΌ ΠΈ Π»ΡΡΡΠ΅ ΡΠ°ΡΡΠΈΡΡΠ΅ΠΌΡΠΌ. Π€ΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ Spring ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ, ΡΠΏΡΠΎΡΠ°ΡΡΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΠΎΠ΅ ΠΈ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ (Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, Π΅ΡΠ»ΠΈ Π²Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ΅ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ, Π΄Π»Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Spring Π²Π°ΠΌ Π½Π΅ Π½ΡΠΆΠ΅Π½). ΠΡΡΠ³ΠΈΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ, ΡΡΠΎΠ±Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΈΡΡΠ΅ΠΌ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ JUnit ΠΈΠ»ΠΈ TestNG Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² (ΡΠΎΠ·Π΄Π°Π²Π°Π΅ΠΌΡΡ ΠΏΡΠΎΡΡΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° new β Π±Π΅Π· Spring ΠΈΠ»ΠΈ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°).
Π ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ Spring Π²ΠΊΠ»ΡΡΠ΅Π½ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ², ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΡ Π΄Π»Ρ ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΠ»Ρ ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΈΠΌΠΈΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² (Environment, PropertySource, JNDI, Servlet; ΡΠ΅Π°ΠΊΡΠΈΠ²Π½ΡΠ΅ ΡΡΠΈΠ»ΠΈΡΡ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ServerHttpRequest ΠΈ ServerHttpResponse), Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡ ΠΈΠ·ΠΎΠ»ΡΡΠΈΠΎΠ½Π½ΠΎΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π°.
ΠΠ°ΠΊ Π²Ρ Π²ΠΈΠ΄ΠΈΡΠ΅, ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ° Spring. ΠΠ±ΡΡΠ½ΠΎ Π²ΡΠ΅Π³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π°Π½Π½ΠΎΡΠ°ΡΠΈΡ @RunWith, ΡΠ²ΡΠ·ΡΠ²Π°ΡΡΠ°Ρ Π²ΠΎΠ΅Π΄ΠΈΠ½ΠΎ Π²ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ° ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
Π’Π΅ΠΏΠ΅ΡΡ Π²Π·Π³Π»ΡΠ½Π΅ΠΌ, ΠΊΠ°ΠΊ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Spring ΠΈ ΠΊΠ°ΠΊΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Spring Boot.
Π€ΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Spring Boot
Spring Boot ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΌΠΎΡΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ° ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Spring, ΡΠ°ΡΡΠΈΡΡΡ ΡΡΠ°ΡΡΠ΅ ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΡ Π½ΠΎΠ²ΡΠ΅ Π°Π½Π½ΠΎΡΠ°ΡΠΈΠΈ ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ, Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΠΊΠΎΡΠΎΡΡΠΌ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΏΡΠΎΡΠ°Π΅ΡΡΡ.
Π§ΡΠΎΠ±Ρ Π½Π°ΡΠ°ΡΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ Π²ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Spring Boot, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π»ΠΈΡΡ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ spring-boot-starter-test Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ ΠΎΠ±Π»Π°ΡΡΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ test (scope test). Π ΡΠ΅ΡΠ²ΠΈΡΠ΅ Spring Initializr ΡΡΠ° Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ ΡΠΆΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π°.
ΠΠ°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ spring-boot-starter-test ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ² ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΎΡΠ΅Π½Ρ Ρ ΠΎΡΠΎΡΠΎ ΡΠΎΠ³Π»Π°ΡΡΡΡΠΈΡ ΡΡ Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠΌΠΈ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Spring Boot: JUnit, AssertJ, Hamcrest, Mockito, JSONassert ΠΈ JsonPath. ΠΠΎΠ½Π΅ΡΠ½ΠΎ, ΡΡΡΠ΅ΡΡΠ²ΡΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΈ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΎΡΠ»ΠΈΡΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠ΅ Ρ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΌ Spring Boot Test; ΠΏΡΠΎΡΡΠΎ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ Π½ΡΠΆΠ½ΠΎ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π²ΡΡΡΠ½ΡΡ.
Spring Boot ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π°Π½Π½ΠΎΡΠ°ΡΠΈΡ @SpringBootTest, ΡΠΏΡΠΎΡΠ°ΡΡΡΡ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Spring. ΠΠ±ΡΡΠ½ΠΎ ΠΏΡΠΈ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Spring Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π°Π½Π½ΠΎΡΠ°ΡΠΈΠΉ Π΄Π»Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΈΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π½ΠΎ Π½Π΅ Π² Spring Boot β Ρ ΠΎΡΡ Π΄Π»Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ Π½ΡΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ Π°Π½Π½ΠΎΡΠ°ΡΠΈΡ @RunWith(SpringRunner.class); Π΅ΡΠ»ΠΈ ΡΡΠΎΠ³ΠΎ Π½Π΅ ΡΠ΄Π΅Π»Π°ΡΡ, Π»ΡΠ±ΡΠ΅ Π½ΠΎΠ²ΡΠ΅ Π°Π½Π½ΠΎΡΠ°ΡΠΈΠΈ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Spring Boot Π±ΡΠ΄ΡΡ ΠΏΡΠΎΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°Π½Ρ. Π£ Π°Π½Π½ΠΎΡΠ°ΡΠΈΠΈ @SpringBootTest Π΅ΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΡΠ΅ Π΄Π»Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ RANDOM_PORT ΠΈ DEFINED_PORT.
Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ ΡΡΠ°Π³ΠΌΠ΅Π½Ρ ΠΊΠΎΠ΄Π° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΊΠ°ΡΠΊΠ°Ρ ΡΠ΅ΡΡΠ° Spring Boot.
Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ½Π΅ΡΠ½ΡΡ ΡΠΎΡΠ΅ΠΊ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
Spring Boot ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ΄ΠΎΠ±Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠ½Π΅ΡΠ½ΡΡ ΡΠΎΡΠ΅ΠΊ: ΠΈΠΌΠΈΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΡΠ΅Π΄Ρ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ ΠΊΠ»Π°ΡΡ MockMvc:
ΠΠΎΠΆΠ½ΠΎ ΡΠ°ΠΊΠΆΠ΅ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΊΠ»Π°ΡΡΠΎΠΌ TestRestTemplate.
Π ΡΡΠΎΠΌ ΠΊΠΎΠ΄Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ ΡΠ΅ΡΡ, Π·Π°ΠΏΡΡΠΊΠ°ΡΡΠΈΠΉ ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΡΠΉ ΡΠ΅ΡΠ²Π΅Ρ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠΉ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΊΠ»Π°ΡΡΠ° TestRestTemplate Π΄Π»Ρ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΊ ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΉ ΡΠΎΡΠΊΠ΅ /todo. ΠΠ΄Π΅ΡΡ ΠΌΡ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌ, ΡΡΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ String (ΡΡΠΎ Π½Π΅ Π»ΡΡΡΠΈΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° JSON; Π½Π΅ Π²ΠΎΠ»Π½ΡΠΉΡΠ΅ΡΡ, Π΄Π°Π»Π΅Π΅ ΠΌΡ ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ»Π°ΡΡ TestRestTemplate ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ).
ΠΠΌΠΈΡΠ°ΡΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ
ΠΠΎΠ΄ΡΠ»Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Spring Boot ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π°Π½Π½ΠΎΡΠ°ΡΠΈΡ @MockBean, ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΡΡ ΠΈΠΌΠΈΡΠ°ΡΠΈΠΎΠ½Π½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ Mockito Π΄Π»Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° Π² ApplicationContext. ΠΡΡΠ³ΠΈΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΈΠΌΠΈΡΠ°ΡΠΈΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° Spring ΠΈΠ»ΠΈ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ ΡΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅, Π΄ΠΎΠ±Π°Π²ΠΈΠ² ΡΡΡ Π°Π½Π½ΠΎΡΠ°ΡΠΈΡ. ΠΠΎΠΌΠ½ΠΈΡΠ΅: Π²ΡΠ΅ ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π²Π½ΡΡΡΠΈ ApplicationContext.
Π’Π΅ΡΡΠΎΠ²ΡΠ΅ ΡΡΠ΅Π·Ρ Spring Boot
ΠΠ΄Π½Π° ΠΈΠ· Π²Π°ΠΆΠ½Π΅ΠΉΡΠΈΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ Spring Boot β Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠ΅ΡΡΠΎΠ² Π±Π΅Π· Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π² ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ΅. ΠΠΎΠ΄ΡΠ»Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Spring Boot Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠ΅ ΡΡΠ΅Π·Ρ (slices), ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠ΅ Π΄Π»Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ ΡΠ°ΡΡΠ΅ΠΉ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π±Π΅Π· ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΈΠ»ΠΈ Π‘Π£ΠΠ.
ΠΠ½Π½ΠΎΡΠ°ΡΠΈΡ @JsonTest
Π ΠΌΠΎΠ΄ΡΠ»Π΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Spring Boot Π΅ΡΡΡ Π°Π½Π½ΠΎΡΠ°ΡΠΈΡ @JsonTest, ΡΠΏΡΠΎΡΠ°ΡΡΠ°Ρ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ/Π΄Π΅ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ JSON-ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΡΡΠ°Ρ, Π²ΡΠ΅ Π»ΠΈ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ. @JsonTest Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΠΎΠ΅ ΡΡΠ΅Π΄ΡΡΠ²ΠΎ JSON-ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π½Π°ΠΉΠ΄Π΅Π½Π½ΠΎΠΉ ΠΏΠΎ ΠΏΡΡΠΈ ΠΊ ΠΊΠ»Π°ΡΡΠ°ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ: Jackson, GSON ΠΈΠ»ΠΈ JSONB.
ΠΠ»Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠ² Π±Π΅Π· ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅ΠΌΠΎΠΉ Spring Boot Π°Π½Π½ΠΎΡΠ°ΡΠΈΠ΅ΠΉ @WebMvcTest, ΠΊΠΎΡΠΎΡΠ°Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅Ρ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ Spring MVC ΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°Π΅Ρ ΡΠΏΠΈΡΠΎΠΊ ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΠΌΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌΠΈ: Controller, ControllerAdvice, @JsonComponent, Converter, GenericConverter, Filter, WebMvcConfigurer ΠΈ HandlerMethodArgumentResolver; Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΡΠΎΠΌΡ Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ Π·Π½Π°ΡΡ, ΡΠ°ΠΊ Π»ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π²Π°ΡΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΡ, ΠΊΠ°ΠΊ ΠΎΠΆΠΈΠ΄Π°Π»ΠΎΡΡ.
ΠΠ°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ, ΡΡΠΎ ΠΏΠΎΠΌΠ΅ΡΠ΅Π½Π½ΡΠ΅ ΠΊΠ°ΠΊ Component ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π½Π΅ ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡΡΡ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΡΠΎΠΉ Π°Π½Π½ΠΎΡΠ°ΡΠΈΠΈ, Π½ΠΎ ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ Π°Π½Π½ΠΎΡΠ°ΡΠΈΡ @MockBean.
ΠΠ½Π½ΠΎΡΠ°ΡΠΈΡ @WebFluxTest
ΠΠ»Ρ ΡΠ΅Π°ΠΊΡΠΈΠ²Π½ΡΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠ² Spring Boot ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π°Π½Π½ΠΎΡΠ°ΡΠΈΡ @WebFluxTest. ΠΡΠ° Π°Π½Π½ΠΎΡΠ°ΡΠΈΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅Ρ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ Spring WebFlux ΠΈ ΠΈΡΠ΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Controller, ControllerAdvice, @JsonComponent, Converter, GenericConverter ΠΈ WebFluxConfigurer.
ΠΠ°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ, ΡΡΠΎ ΠΏΠΎΠΌΠ΅ΡΠ΅Π½Π½ΡΠ΅ ΠΊΠ°ΠΊ Component ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π½Π΅ ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡΡΡ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΡΠΎΠΉ Π°Π½Π½ΠΎΡΠ°ΡΠΈΠΈ, Π½ΠΎ ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ Π°Π½Π½ΠΎΡΠ°ΡΠΈΡ @MockBean.
ΠΠ½Π½ΠΎΡΠ°ΡΠΈΡ @DataJpaTest
ΠΠ»Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ JPA-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Spring Boot ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π°Π½Π½ΠΎΡΠ°ΡΠΈΡ @DataJpaTest, ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΡΡ Π°Π²ΡΠΎΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ Π±Π°Π· Π΄Π°Π½Π½ΡΡ , ΡΠ°Π·ΠΌΠ΅ΡΠ°Π΅ΠΌΡΡ Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ. ΠΠ½Π° ΠΈΡΠ΅Ρ Entity ΠΈ Π½Π΅ Π·Π°Π³ΡΡΠΆΠ°Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Component. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΎΠ½Π° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΊΠ»Π°ΡΡ TestEntityManager, ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Π½Π° ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, ΠΎΡΠ΅Π½Ρ ΠΏΠΎΡ ΠΎΠΆΠΈΠΉ Π½Π° ΠΊΠ»Π°ΡΡ JPA EntityManager.
Π£ΡΡΠΈΡΠ΅, ΡΡΠΎ ΠΏΡΠΈ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ @DataJpaTest ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ Π‘Π£ΠΠ Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ. ΠΠ»Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΆΠ΅ Ρ Π½Π°ΡΡΠΎΡΡΠ΅ΠΉ Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½ΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ½Π°Π±Π΄ΠΈΡΡ ΠΊΠ»Π°ΡΡ ΡΠ΅ΡΡΠ° Π°Π½Π½ΠΎΡΠ°ΡΠΈΠ΅ΠΉ @AutoConfigureTestDatabase(replace=Replace.NONE).
ΠΠ½Π½ΠΎΡΠ°ΡΠΈΡ @JdbcTest
ΠΡΠ° Π°Π½Π½ΠΎΡΠ°ΡΠΈΡ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΡ ΠΎΠΆΠ° Π½Π° @DataJpaTest; Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΠΎΡΠ»ΠΈΡΠΈΠ΅ β ΠΎΠ½Π° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½Π° JDBC ΡΠ΅ΡΡΡ. ΠΠ½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠΉ Π‘Π£ΠΠ, ΡΠ°Π·ΠΌΠ΅ΡΠ°Π΅ΠΌΠΎΠΉ Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ, ΠΈ ΠΊΠ»Π°ΡΡΠ° JdbcTemplate, ΠΏΡΠΎΠΏΡΡΠΊΠ°Ρ ΠΏΡΠΈ ΡΡΠΎΠΌ Π²ΡΠ΅ ΡΠ½Π°Π±ΠΆΠ΅Π½Π½ΡΠ΅ Π°Π½Π½ΠΎΡΠ°ΡΠΈΠ΅ΠΉ Component ΠΊΠ»Π°ΡΡΡ.
ΠΠ½Π½ΠΎΡΠ°ΡΠΈΡ @DataMongoTest
ΠΠ»Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ MongoDB ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Spring Boot ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π°Π½Π½ΠΎΡΠ°ΡΠΈΡ @DataMongoTest. ΠΠ½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ°Π΅ΠΌΠΎΠ³ΠΎ Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ° Mongo, Π΅ΡΠ»ΠΈ ΠΎΠ½ Π΄ΠΎΡΡΡΠΏΠ΅Π½; Π΅ΡΠ»ΠΈ ΠΆΠ΅ Π½Π΅Ρ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π½ΡΠΆΠ½ΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° spring.data.mongodb.*. ΠΠ½Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ Π½Π°ΡΡΡΠΎΠΉΠΊΡ ΠΊΠ»Π°ΡΡΠ° MongoTemplate ΠΈ ΠΈΡΠ΅Ρ Π°Π½Π½ΠΎΡΠ°ΡΠΈΠΈ @Document. ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Component ΠΏΡΠΎΠΏΡΡΠΊΠ°ΡΡΡΡ.
ΠΡΠΈ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΡΠΈ Π²ΠΎ Π²Π½Π΅ΡΠ½Π΅ΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅ MongoDB (Π½Π΅Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠΌ, ΡΠ°Π·ΠΌΠ΅ΡΠ°Π΅ΠΌΠΎΠΌ Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ) Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ Π² Π°Π½Π½ΠΎΡΠ°ΡΠΈΡ @DataMongoTest ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ excludeAutoConfiguration = EmbeddedMongoAutoConfiguration.class.
ΠΠ½Π½ΠΎΡΠ°ΡΠΈΡ @RestClientTest
ΠΡΠ΅ ΠΎΠ΄Π½Π° Π²Π°ΠΆΠ½Π°Ρ Π°Π½Π½ΠΎΡΠ°ΡΠΈΡ β @RestClientTest, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½Π°Ρ Π΄Π»Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ REST-ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ². ΠΡΠ° Π°Π½Π½ΠΎΡΠ°ΡΠΈΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π΄Π»Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ Jackson, GSON ΠΈ JSONB, Π° ΡΠ°ΠΊΠΆΠ΅ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅Ρ ΠΊΠ»Π°ΡΡ RestTemplateBuilder ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ MockRestServiceServer.
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π΄ΡΡΠ³ΠΈΡ Π΄ΠΎΡΡΡΠΏΠ½ΡΡ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ΅Π·ΠΎΠ². ΠΠ»Π°Π²Π½ΠΎΠ΅, Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡΡ: Π΄Π»Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½Π° ΠΏΠΎΠ»Π½Π°Ρ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ° ΡΠΎ Π²ΡΠ΅ΠΌΠΈ Π·Π°ΠΏΡΡΠ΅Π½Π½ΡΠΌΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ°ΠΌΠΈ. Π£ΠΏΡΠΎΡΡΠΈΡΡ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Spring Boot ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΡΡΠ΅Π·Ρ.
ΠΠ± Π°Π²ΡΠΎΡΠ΅
Π€Π΅Π»ΠΈΠΏΠ΅ ΠΡΡΡΠ΅ΡΡΠ΅Ρ (Felipe Gutierrez) β Π°ΡΡ ΠΈΡΠ΅ΠΊΡΠΎΡ ΠΠ, ΠΏΠΎΠ»ΡΡΠΈΠ²ΡΠΈΠΉ Π΄ΠΈΠΏΠ»ΠΎΠΌΡ Π±Π°ΠΊΠ°Π»Π°Π²ΡΠ° ΠΈ ΠΌΠ°Π³ΠΈΡΡΡΠ° Π² ΠΎΠ±Π»Π°ΡΡΠΈ Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΠ΅Ρ Π½ΠΈΠΊΠΈ Π² ΠΠ½ΡΡΠΈΡΡΡΠ΅ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ ΠΈ Π²ΡΡΡΠ΅Π³ΠΎ ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ Π³ΠΎΡΠΎΠ΄Π° ΠΠΎΠ½ΡΠ΅ΡΡΠ΅ΠΉ, ΠΠ΅ΠΊΡΠΈΠΊΠ°. Π£ ΠΡΡΡΠ΅ΡΡΠ΅ΡΠ° Π±ΠΎΠ»Π΅Π΅ 20 Π»Π΅Ρ ΠΎΠΏΡΡΠ° Π² ΡΡΠ΅ΡΠ΅ IT, ΠΎΠ½ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π» ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π΄Π»Ρ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ ΠΈΠ· ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° Π²Π΅ΡΡΠΈΠΊΠ°Π»ΡΠ½ΠΎ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΎΡΡΠ°ΡΠ»Π΅ΠΉ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ Π³ΠΎΡΡΠ΄Π°ΡΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅, ΡΠΎΠ·Π½ΠΈΡΠ½Π°Ρ ΡΠΎΡΠ³ΠΎΠ²Π»Ρ, Π·Π΄ΡΠ°Π²ΠΎΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅, ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Π±Π°Π½ΠΊΠΎΠ²ΡΠΊΠΎΠ΅ Π΄Π΅Π»ΠΎ. Π Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΠΎΠ½ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Pivotal, ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΡΡΡ Π½Π° PAS ΠΈ PKS Π΄Π»Ρ Cloud Foundry, ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ΅ Spring, Π½Π°ΡΠΈΠ²Π½ΡΡ ΠΎΠ±Π»Π°ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ Spring, Groovy ΠΈ RabbitMQ, ΠΏΠΎΠΌΠΈΠΌΠΎ ΠΏΡΠΎΡΠΈΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ. ΠΠ½ ΡΠ°ΠΊΠΆΠ΅ Π±ΡΠ» Π°ΡΡ ΠΈΡΠ΅ΠΊΡΠΎΡΠΎΠΌ ΠΠ Π² ΡΠ°ΠΊΠΈΡ ΠΊΡΡΠΏΠ½ΡΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡΡ , ΠΊΠ°ΠΊ Nokia, Apple, Redbox ΠΈ Qualcomm. ΠΡΡΡΠ΅ΡΡΠ΅Ρ β Π°Π²ΡΠΎΡ ΠΊΠ½ΠΈΠ³ Spring Boot Messaging (Apress, 2017) ΠΈ Introducing Spring Framework (Apress, 2014).
Π Π½Π°ΡΡΠ½ΡΡ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ°Ρ
ΠΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΠΎΠ΅ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅
ΠΠ°Π½ΡΡΠ»Ρ ΠΠΎΡΠ΄Π°Π½ ΠΠ»Π΅ΡΠ° (Manuel Jordan Elera) β ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ-ΡΠ°ΠΌΠΎΡΡΠΊΠ° ΠΈ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΠΎΠ±ΠΎΠΆΠ°Π΅Ρ ΠΈΠ·ΡΡΠ°ΡΡ Π½ΠΎΠ²ΡΠ΅ ΡΠ΅Ρ
Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Π΄Π»Ρ ΡΠ²ΠΎΠΈΡ
ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΎΠ² ΠΈ Π½ΠΎΠ²ΡΡ
ΠΈΡ
ΡΠΎΡΠ΅ΡΠ°Π½ΠΈΠΉ. ΠΠ°Π½ΡΡΠ»Ρ ΠΏΠΎΠ»ΡΡΠΈΠ» ΠΏΡΠ΅ΠΌΠΈΠΈ Springy Award Community Champion ΠΈ Spring Champion 2013. ΠΠ΅ΠΌΠ½ΠΎΠ³ΠΎΠ΅ ΠΈΠΌΠ΅ΡΡΠ΅Π΅ΡΡ Ρ Π½Π΅Π³ΠΎ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ ΠΎΠ½ ΠΏΠΎΡΠ²ΡΡΠ°Π΅Ρ ΡΡΠ΅Π½ΠΈΡ ΠΠΈΠ±Π»ΠΈΠΈ ΠΈ ΡΠΎΡΠΈΠ½Π΅Π½ΠΈΡ ΠΌΡΠ·ΡΠΊΠΈ Π½Π° Π³ΠΈΡΠ°ΡΠ΅. ΠΠ°Π½ΡΡΠ»Ρ ΠΈΠ·Π²Π΅ΡΡΠ΅Π½ ΠΏΠΎΠ΄ ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ-ΠΏΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌΠΎΠΌ dr_pompeii. ΠΠ½ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ» Π½Π°ΡΡΠ½ΡΡ ΡΠ΅Π΄Π°ΠΊΡΡΡΡ ΠΌΠ½ΠΎΠ³ΠΈΡ
ΠΊΠ½ΠΈΠ³, Π²ΠΊΠ»ΡΡΠ°Ρ Pro Spring, 4-Π΅ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ (Apress, 2014)1, Practical Spring LDAP (Apress, 2013), Pro JPA 2, 2-Π΅ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ (Apress, 2013) ΠΈ Pro Spring Security (Apress, 2013).
Π ΡΡΡΠΊΠΎΡΠ·ΡΡΠ½ΠΎΠ΅ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅
ΠΠ°Π»Π΅ΡΠΈΠΉ ΠΠ»Π΅ΠΊΡΠ΅Π΅Π²ΠΈΡ ΠΠΌΠΈΡΡΡΡΠ΅Π½ΠΊΠΎΠ² ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² IT Π±ΠΎΠ»Π΅Π΅ 35 Π»Π΅Ρ. Π Π°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π» ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ ΠΈ ΠΎΡΡΠ°ΡΠ»Π΅ΠΉ, ΡΡΠΊΠΎΠ²ΠΎΠ΄ΠΈΠ» ΠΌΠ½ΠΎΠ³ΠΈΠΌΠΈ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ½ΡΠΌΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ°ΠΌΠΈ, Π²ΠΊΠ»ΡΡΠ°Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ, Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΠ΅ ΠΈ ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
ΡΠΈΡΡΠ΅ΠΌ. Π£ΡΠ°ΡΡΠ²ΠΎΠ²Π°Π» Π² ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΊΡΡΠΏΠ½ΡΡ
ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² Π΄Π»Ρ Π³ΠΎΡΡΠ΄Π°ΡΡΡΠ²Π΅Π½Π½ΡΡ
ΠΎΡΠ³Π°Π½ΠΎΠ², ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΡ
ΠΌΠ΅ΠΆΠ΄ΡΠ½Π°ΡΠΎΠ΄Π½ΡΠΌΠΈ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡΠΌΠΈ: ΠΠΠ, USIAD, World Bank Π² Π ΠΎΡΡΠΈΠΈ, ΠΠΎΡΠΎΠ²ΠΎ, ΠΠΎΠ»Π΄Π°Π²ΠΈΠΈ ΠΈ ΠΡΠΌΠ΅Π½ΠΈΠΈ.
ΠΠ»Ρ Π₯Π°Π±ΡΠΎΠΆΠΈΡΠ΅Π»Π΅ΠΉ ΡΠΊΠΈΠ΄ΠΊΠ° 25% ΠΏΠΎ ΠΊΡΠΏΠΎΠ½Ρ β Spring Boot
ΠΠΎ ΡΠ°ΠΊΡΡ ΠΎΠΏΠ»Π°ΡΡ Π±ΡΠΌΠ°ΠΆΠ½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ ΠΊΠ½ΠΈΠ³ΠΈ Π½Π° e-mail Π²ΡΡΡΠ»Π°Π΅ΡΡΡ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½Π°Ρ ΠΊΠ½ΠΈΠ³Π°.
Π€Π΅Π»ΠΈΠΏΠ΅ ΠΡΡΡΠ΅ΡΡΠ΅Ρ | Spring Boot 2. ΠΡΡΡΠΈΠ΅ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ Π΄Π»Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΠΎΠ² (2020) [PDF]
Π€Π΅Π»ΠΈΠΏΠ΅ ΠΡΡΡΠ΅ΡΡΠ΅Ρ | Spring Boot 2. ΠΡΡΡΠΈΠ΅ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ Π΄Π»Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΠΎΠ² (2020) [PDF] ΠΠ²ΡΠΎΡ: Π€Π΅Π»ΠΈΠΏΠ΅ ΠΡΡΡΠ΅ΡΡΠ΅Ρ
ΠΠ·Π΄Π°ΡΠ΅Π»ΡΡΡΠ²ΠΎ: ΠΠΈΡΠ΅Ρ
Π‘Π΅ΡΠΈΡ: ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ°
ISBN: 978-5-4461-1587-7
ΠΠ°Π½Ρ: ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
Π€ΠΎΡΠΌΠ°Ρ: PDF
ΠΠ°ΡΠ΅ΡΡΠ²ΠΎ: ΠΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠ΅ (ebook)
ΠΠ»Π»ΡΡΡΡΠ°ΡΠΈΠΈ: Π§Π΅ΡΠ½ΠΎ-Π±Π΅Π»ΡΠ΅
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅:
Π₯ΠΎΡΠΈΡΠ΅ ΠΏΠΎΠ²ΡΡΠΈΡΡ ΡΠ²ΠΎΡ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΊΠΎΡΠΏΠΎΡΠ°ΡΠΈΠ²Π½ΡΡ
ΠΈ ΠΎΠ±Π»Π°ΡΠ½ΡΡ
Java-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ?
Π£Π²Π΅Π»ΠΈΡΡΡΠ΅ ΡΠΊΠΎΡΠΎΡΡΡ ΠΈ ΠΏΡΠΎΡΡΠΎΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠΎΠ² ΠΈ ΡΠ»ΠΎΠΆΠ½ΡΡ
ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΈΠ·Π±Π°Π²ΠΈΠ²ΡΠΈΡΡ ΠΎΡ Π·Π°Π±ΠΎΡ ΠΏΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Spring.
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Spring Boot 2 ΠΈ ΡΠ°ΠΊΠΈΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ° Spring 5, ΠΊΠ°ΠΊ WebFlux, Security, Actuator, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ Micrometer, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡΠΈΠΉ Π½ΠΎΠ²ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΠ±ΠΎΡΠ° ΠΌΠ΅ΡΡΠΈΠΊ.
Π ΡΡΠΎΠΉ ΠΊΠ½Π³Π΅: Π½Π°ΡΡΡΠΎΠΉΠΊΠ° ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Spring Boot 2; ΡΠ°Π±ΠΎΡΠ° Ρ Π½Π΅ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΌΠΈ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡΠΌΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Spring Boot Actuator; ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Spring Boot 2; ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎΠ΅ Ρ
ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ
Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ JDBC, JPA ΠΈ Π±Π°Π· Π΄Π°Π½Π½ΡΡ
NoSQL; ΠΎΠ±ΠΌΠ΅Π½ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ JMS, RabbitMQ ΠΈ WebSockets; ΠΊΡΠ°ΡΠΊΠΎΠ΅ Π·Π½Π°ΠΊΠΎΠΌΡΡΠ²ΠΎ Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ°ΠΌΠΈ Spring Cloud; ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΡ ΠΈ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΠ΅ Π² ΠΎΠ±Π»Π°ΡΠ½ΠΎΠΉ ΡΡΠ΅Π΄Π΅ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Spring Boot 2; ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ Spring Boot ΠΏΡΡΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ²ΠΎΠ΅Π³ΠΎ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ Β«ΡΡΠ°ΡΡΠΎΠ²ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡΠ°Β» ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ @Enable.
Spring boot 2 Π»ΡΡΡΠΈΠ΅ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ Π΄Π»Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΠΎΠ² ΡΠ΅Π»ΠΈΠΏΠ΅ Π³ΡΡΡΠ΅ΡΡΠ΅Ρ 2020
Java Π·Π°ΠΏΠΈΡΡ Π·Π°ΠΊΡΠ΅ΠΏΠ»Π΅Π½Π°
Felipe Gutierrez | Pro Spring Boot 2, 2nd Edition / (2019) [PDF/ePub] [En]
#JavaBooks@javatutorial #Spring@javatutorial
Quickly and productively develop complex Spring applications and microservices out of the box, with minimal concern over things like configurations. This revised book will show you how to fully leverage the Spring Boot 2 technology and how to apply it to create enterprise ready applications that just work. It will also cover whatβs been added to the new Spring Boot 2 release, including Spring Framework 5 features like WebFlux, Security, Actuator and the new way to expose Metrics through Micrometer framework, and more.
This book is your authoritative hands-on practical guide for increasing your enterprise Java and cloud application productivity while decreasing development time. Itβs a no nonsense guide with case studies of increasing complexity throughout the book. The author, a senior solutions architect and Principal Technical instructor with Pivotal, the company behind the Spring Framework, shares his experience, insights and first-hand knowledge about how Spring Boot technology works and best practices.
Pro Spring Boot 2 is an essential book for your Spring learning and reference library.
What You Will Learn
Configure and use Spring Boot
Use non-functional requirements with Spring Boot Actuator
Carry out web development with Spring Boot
Persistence with JDBC, JPA and NoSQL Databases
Messaging with JMS, RabbitMQ and WebSockets
Test and deploy with Spring Boot
A quick look at the Spring Cloud projects
Microservices and deployment to the Cloud
Extend Spring Boot by creating your own Spring Boot Starter and @Enable feature
Who This Book Is For
Experienced Spring and Java developers seeking increased productivity gains and decreased complexity and development time in their applications and software services.