spring boot Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ΅Π½

Spring Boot vs Spring MVC vs Spring β€” Как ΠΎΠ½ΠΈ ΡΡ€Π°Π²Π½ΠΈΠ²Π°ΡŽΡ‚ΡΡ?

Spring Boot vs Spring MVC vs Spring β€” Как ΠΎΠ½ΠΈ ΡΡ€Π°Π²Π½ΠΈΠ²Π°ΡŽΡ‚ΡΡ?

spring boot Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ΅Π½. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ spring boot Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ΅Π½. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ spring boot Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ΅Π½. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ spring boot Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ΅Π½. Π€ΠΎΡ‚ΠΎ spring boot Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ΅Π½

Spring, Spring Boot, Spring MVC, Π²Π΅Π·Π΄Π΅ Π΅ΡΡ‚ΡŒ слово β€œspring”! Π”Π°Π²Π°ΠΉΡ‚Π΅ пройдСмся Π³Π΄Π΅ ΠΈ ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· этих инструмСнтов

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅, Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ ΠΎΠ±Π·ΠΎΡ€Ρ‹: Spring, Spring MVC, ΠΈ Spring Boot, ΡƒΠ·Π½Π°Π΅Ρ‚Π΅ ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΎΠ½ΠΈ Ρ€Π΅ΡˆΠ°ΡŽΡ‚, ΠΈ Π³Π΄Π΅ ΠΎΠ½ΠΈ Π»ΡƒΡ‡ΡˆΠ΅ всСго ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΡ‹. Π‘Π°ΠΌΡ‹ΠΉ Π²Π°ΠΆΠ½Ρ‹ΠΉ Π² Ρ„Π°ΠΊΡ‚ Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅, являСтся Ρ‚Π΅ΠΌ Ρ‡Ρ‚ΠΎ Spring, Spring MVC, ΠΈ Spring Boot Π½Π΅ ΠΊΠΎΠ½ΠΊΡƒΡ€ΠΈΡ€ΡƒΡŽΡ‚ Π·Π° ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎ ΠΆΠ΅ мСсто. Они Ρ€Π΅ΡˆΠ°ΡŽΡ‚ Ρ€Π°Π·Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, ΠΈ ΠΎΠ½ΠΈ Ρ€Π΅ΡˆΠ°ΡŽΡ‚ ΠΈΡ… ΠΎΡ‡Π΅Π½ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΎ.

Π§Ρ‚ΠΎ Π·Π° основная ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ этот Spring Framework Ρ€Π΅ΡˆΠ°Π΅Ρ‚?

Π”ΠΎΠ»Π³ΠΎ ΠΈ ΡƒΠΏΠΎΡ€Π½ΠΎ ΠΏΠΎΠ΄ΡƒΠΌΠ°ΠΉΡ‚Π΅. Какова ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, Ρ€Π΅ΡˆΠ°Π΅ΠΌΠ°Ρ Spring Framework?

ΠŸΠΎΡ‡Π΅ΠΌΡƒ это Π²Π°ΠΆΠ½ΠΎ? ΠŸΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ, ΠΊΠΎΠ³Π΄Π° DI ΠΈΠ»ΠΈ IOC ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ слабо связанныС прилоТСния. А слабо связанныС прилоТСния ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π»Π΅Π³ΠΊΠΎ протСстированы ΡŽΠ½ΠΈΡ‚-тСстами.

Π”Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим простой ΠΏΡ€ΠΈΠΌΠ΅Ρ€.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π±Π΅Π· внСдрСния зависимостСй

Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π½ΠΈΠΆΠ΅: WelcomeController зависит ΠΎΡ‚ WelcomeService, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ привСтствСнноС сообщСниС. Π§Ρ‚ΠΎ ΠΎΠ½ Π΄Π΅Π»Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ экзСмпляр WelcomeService?

Π­Ρ‚Π° строка создаСт экзСмпляр Π΄Π°Π½Π½ΠΎΠ³ΠΎ сСрвиса. А это Π·Π½Π°Ρ‡ΠΈΡ‚ Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ сильно связаны. НапримСр, Ссли я создаю ΠΌΠΎΠΊ для WelcomeService Π² ΡŽΠ½ΠΈΡ‚-тСстС для WelcomeController, ΠΊΠ°ΠΊ ΠΌΠ½Π΅ Π·Π°ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ WelcomeController ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΎΠΊ? НС Π»Π΅Π³ΠΊΠΎ!

ΠŸΡ€ΠΎΡΡ‚ΠΎΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ с Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ΠΌ зависимостСй

ΠœΠΈΡ€ выглядит Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΡ‰Π΅ с Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ΠΌ зависимостСй. Π’Ρ‹ позволяСтС Spring Framework Π΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚ΡΠΆΠ΅Π»ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ. ΠœΡ‹ просто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Π΄Π²Π΅ простыС Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ: Component ΠΈ Autowired.

Π’ ΡŽΠ½ΠΈΡ‚-тСстС, я ΠΌΠΎΠ³Ρƒ ΠΏΠΎΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ Spring framework ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΌΠΎΠΊ для WelcomeService ΠΊ WelcomeController. (Spring Boot Π΄Π΅Π»Π°Π΅Ρ‚ Π²Π΅Ρ‰ΠΈ ΠΏΡ€ΠΎΡ‰Π΅ дСлая это с Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠ΅ΠΉ @MockBean. Но это ΡƒΠΆΠ΅ совсСм другая история!)

Π§Ρ‚ΠΎ Π΅Ρ‰Π΅ Ρ€Π΅ΡˆΠ°Π΅Ρ‚ Spring Framework?

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° 1: Π”ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅/ЗагрязнСниС ΠΊΠΎΠ΄Π°

ΠžΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ‚ΡΡ Π»ΠΈ Spring Framework с Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ΠΌ зависимостСй? НСт. Он строится Π½Π° основной ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ внСдрСния зависимостСй с нСсколькими модулями Spring

ΠŸΡ€ΠΈΠ½ΠΎΡΡΡ‚ Π»ΠΈ эти ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Π½ΠΎΠ²ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ? НСт. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π΅Π»Π°Ρ‚ΡŒ всС это Π½Π° J2EE ΠΈΠ»ΠΈ Java EE. Π’Π°ΠΊ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ приносят? Они приносят простыС абстракции. ЦСлью этих абстракций являСтся:

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° 2: Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π΅ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°ΠΌΠΈ

ΠžΡ‚Π»ΠΈΡ‡Π½Π°Ρ Π²Π΅Ρ‰ΡŒ насчСт Spring Framework, это Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π½Π΅ пытаСтся Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠΆΠ΅ Ρ€Π΅ΡˆΠ΅Π½Ρ‹. ВсС Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π΄Π΅Π»Π°Π΅Ρ‚, это прСдоставляСт ΠΎΡ‚Π»ΠΈΡ‡Π½ΡƒΡŽ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡŽ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ Π½Π°ΠΌ Π½ΡƒΠΆΠ΅Π½ Spring Boot?

Π£ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, основанных Π½Π° Spring, ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ.

Когда ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Spring MVC, Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ: component scan, dispatcher servlet, view resolver, web jars(для доставки статичСского ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π°) срСди Π΄Ρ€ΡƒΠ³ΠΈΡ… Π²Π΅Ρ‰Π΅ΠΉ.

Код Π½ΠΈΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ‚ΠΈΠΏΠΈΡ‡Π½ΡƒΡŽ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ dispatcher servlet Π² web ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ.

Когда ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Hibernate/JPA, Π½Π°ΠΌ Π½Π°Π΄ΠΎ ΡΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ источник Π΄Π°Π½Π½Ρ‹Ρ…, Ρ„Π°Π±Ρ€ΠΈΠΊΡƒ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π° сущностСй, ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ, ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΡˆΡ‚ΡƒΠΊΠΈ.

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° 1: Spring Boot Π°Π²Ρ‚ΠΎ конфигурация: МоТСм Π»ΠΈ ΠΌΡ‹ Π΄ΡƒΠΌΠ°Ρ‚ΡŒ ΠΈΠ½Π°Ρ‡Π΅?

Spring Boot приносит Π½ΠΎΠ²Ρ‹ΠΉ ΠΌΡ‹ΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ процСсс Π²ΠΎΠΊΡ€ΡƒΠ³ всСго этого.

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° 2: Spring Boot Starter Projects: ΠŸΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ Π²ΠΎΠΊΡ€ΡƒΠ³ Ρ…ΠΎΡ€ΠΎΡˆΠΎ извСстных ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½ΠΎΠ²

Π”Π°Π²Π°ΠΉΡ‚Π΅ скаТСм Ρ‡Ρ‚ΠΎ Ρ…ΠΎΡ‚ΠΈΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π²Π΅Π± ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.

ΠŸΡ€Π΅ΠΆΠ΄Π΅ всСго Π½Π°ΠΌ потрСбуСтся ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ вСрсии ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΊΠ°ΠΊ ΠΈΡ… вмСстС ΠΏΠΎΠ΄ΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ.

Π£ всСх Π²Π΅Π± ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹Π΅ потрСбности. НиТС пСрСчислСны зависимости ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² Spring MVC. Они Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π² сСбя Spring MVC, Jackson Databind, Hibernate-Validator ΠΈ Log4j.

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π²Π΅Π± ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для RESTful сСрвисов, ваш Π²Ρ‹Π±ΠΎΡ€ β€” Spring Boot Start Web. Π”Π°Π²Π°ΠΉΡ‚Π΅ быстро создадим ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ с Spring Boot Starter Web ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Spring Initializr.

Зависимости для Spring Boot Starter Web

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΡΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ€Π°Π·Π½Ρ‹Π΅ зависимости, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π² нашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.

spring boot Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ΅Π½. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ spring boot Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ΅Π½. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ spring boot Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ΅Π½. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ spring boot Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ΅Π½. Π€ΠΎΡ‚ΠΎ spring boot Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ΅Π½

Зависимости ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ классифицированы Π½Π°:

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Spring Boot Starter

Как ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ ΠΈΠ· Spring Boot Starter Web, стартовыС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ Π½Π°ΠΌ быстро Π½Π°Ρ‡Π°Ρ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.

Π”Ρ€ΡƒΠ³ΠΈΠ΅ Ρ†Π΅Π»ΠΈ Spring Boot

Π’Π°ΠΊΠΆΠ΅ Π΅ΡΡ‚ΡŒ нСсколько стартСров для тСхничСских Π²Π΅Ρ‰Π΅ΠΉ:

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π‘Ρ‚ΠΎΠΈΡ‚ Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Spring Boot Π² вашСм ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅?

spring boot Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ΅Π½. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ spring boot Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ΅Π½. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ spring boot Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ΅Π½. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ spring boot Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ΅Π½. Π€ΠΎΡ‚ΠΎ spring boot Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ΅Π½

Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΌΠΎΠΈΡ… ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… Java ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Π·Π° послСднСС дСсятилСтиС Π±Ρ‹Π»ΠΈ основаны Π½Π° Spring ΠΈΠ»ΠΈ JEE. ОбС ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Ρ€Π°Π·Π²ΠΈΠ²Π°ΡŽΡ‚ΡΡ достаточно ΡƒΠ²Π΅Ρ€Π΅Π½Π½ΠΎ, ΠΎΠ΄Π½Π°ΠΊΠΎ всС Π΅Ρ‰Ρ‘ ΡΡ‚Ρ€Π°Π΄Π°ΡŽΡ‚ ΠΎΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ.

Spring ΠΈ JEE ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ Π·ΠΎΠ»ΠΎΡ‚Ρ‹ΠΌΠΈ стандартами для ΠΌΠ°ΡΡˆΡ‚Π°Π±Π½Ρ‹Ρ… Java-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² ΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², трудящихся Π½Π°Π΄ слоТными enterprise-Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΠΌΠΈ. Однако, Π½Π΅ΠΈΠ·Π±Π΅ΠΆΠ½Ρ‹ΠΌ слСдствиСм зрСлости Java-сообщСства стала частичная потСря ΠΏΡ€Π΅ΠΆΠ½Π΅Π³ΠΎ энтузиазма ΠΈ инновационности, Ρ‡Ρ‚ΠΎ сущСствСнно ΡƒΠ΄Π°Ρ€ΠΈΠ»ΠΎ ΠΏΠΎ Π°Π²Ρ‚ΠΎΡ€ΠΈΡ‚Π΅Ρ‚Ρƒ ΠΎΠ±ΠΎΠΈΡ….

JEE измСнилась довольно Ρ€Π΅Π·ΠΊΠΎ Π½Π° протяТСнии ΠΌΠ½ΠΎΠ³ΠΈΡ… Π»Π΅Ρ‚, Π½ΠΎ Π΄ΠΎ сих ΠΏΠΎΡ€ осуТдаСтся Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ Π·Π° ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹ ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½Ρ‹ создатСлями ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ΠΊΠ°ΠΊ deprecated Π΅Ρ‰Ρ‘ начиная с вСрсии EJB 2.x. МногиС люди Π΄ΠΎ сих ΠΏΠΎΡ€ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ JEE ΠΊΠ°ΠΊ β€œJ2EE”, хотя ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ названия ΡΠΎΡΡ‚ΠΎΡΠ»ΠΎΡΡŒ 8 Π»Π΅Ρ‚ Π½Π°Π·Π°Π΄!

Spring Ρ‚ΠΎΠΆΠ΅ Π·Π°ΠΌΠ΅Ρ‚Π½ΠΎ ΡƒΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π»ΡΡ, ΠΎΠ΄Π½Π°ΠΊΠΎ Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ всСми ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ это воспринимаСтся. НСвзирая Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ создания ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Spring 3.x ΠΈ Π²Ρ‹ΡˆΠ΅ соврСмСнных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ с ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎΠΉ, Π½Π΅ΠΎΡ‚ΠΎΡ€Π²Π°Π½Π½ΠΎΠΉ ΠΎΡ‚ ΠΊΠΎΠ΄Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠ΅ΠΉ, Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡŽΡ‚ с ΠΈΠ·Π±Ρ‹Ρ‚ΠΊΠΎΠΌ ΠΏΠ΅ΡΡ‚Ρ€Π΅Ρ‚ΡŒ XML-Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ ΠΈ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠΌΠΈ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½Ρ‹ΠΌΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΠΌΠΈ. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΏΠΎ Ρ‚Π΅ΠΌ ΠΈΠ»ΠΈ ΠΈΠ½Ρ‹ΠΌ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ Π½Π΅ ΠΌΠ΅Π½ΡΡŽΡ‚ ΠΎΡ‚Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½ΠΎΠ³ΠΎ Π½Π° ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… вСрсиях ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π°.

По ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ ΠΎΡ‚ΠΊΡ€Ρ‹Π»Π°ΡΡŒ Π΄ΠΎΡ€ΠΎΠ³Π° Π΄Ρ€ΡƒΠ³ΠΈΠΌ языкам ΠΈ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°ΠΌ. Java Π±Ρ‹Π», вСроятно, самым популярным языком для Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², Π±ΠΎΠ»Π΅Π΅ дСсятка Π»Π΅Ρ‚ Ρ‚ΠΎΠΌΡƒ Π½Π°Π·Π°Π΄, Π½ΠΎ ΠΌΠΎΠ»ΠΎΠ΄Ρ‹Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ сСгодня, каТСтся, стали ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒ большС внимания Π½Π° Python, Scala ΠΈ Ρ‚.Π΄. НаиболСС Π²Π»ΠΈΡΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π²Π΅Π±-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ дСсятилСтия Rails, ΠΈ основанная Π½Π° Ruby Sinatra ΠΏΠΎΡ€ΠΎΠ΄ΠΈΠ»ΠΈ ряд ΠΌΠΈΠΊΡ€ΠΎ-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² Π½Π° протяТСнии послСдних пяти Π»Π΅Ρ‚.

Groovy ΠΈ Grails, Π² ΠΌΠΈΡ€Π΅ Java, стали ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ ΡΠ΅Ρ€ΡŒΡ‘Π·Π½Ρ‹ΠΌ ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠΌ Ruby ΠΈ Rails. Π˜Ρ… Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΡ‚Ρ€Π΅Ρ‚ΠΈΡ‚ΡŒ Π² Π½Π°Π±ΠΎΡ€Π΅ инструмСнтов Π΄Π°ΠΆΠ΅ самых консСрвативных ΠΊΠΎΠΌΠ°Π½Π΄ enterprise-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. Однако, Π½ΠΎΠ²Ρ‹Π΅ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ Π½Π° основС JVM ΠΈΠ΄ΡƒΡ‚ Π³ΠΎΡ€Π°Π·Π΄ΠΎ дальшС. ВмСсто просто обёртывания API JEE ΠΈ Spring Π² Π»Π΅Π³ΠΊΡƒΡŽ для использования интСрфСйс-ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΡƒ Play Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Π½Π°Ρ‡Π°Π», Ρ‚Π°ΠΊ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ с чистого листа, отбрасывая Π΄Π°ΠΆΠ΅, казалось Π±Ρ‹ Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΡƒΡŽ модСль Java-сСрвлСта.

Spring ΡƒΠΆΠ΅ Π½Π΅ рассматриваСтся ΠΊΠ°ΠΊ соврСмСнный ΠΈΠ½Π½ΠΎΠ²Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ инструмСнт. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Π΅Ρ‰Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Π΅Π³ΠΎ, особСнно для старых ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π½ΠΎ Π² основном, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹, Π° Π½Π΅ ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ этого сами хотят. Π― Π½Π΅ ΠΌΠΎΠ³Ρƒ Π²ΡΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° послСдний Ρ€Π°Π· я Π³ΠΎΠ²ΠΎΡ€ΠΈΠ» с Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠΌ, использовавшСм Spring Π² Π»ΠΈΡ‡Π½ΠΎΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ Play ΠΈΠ»ΠΈ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ другая ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‚ΡΡ повсСмСстно.

Π­Ρ‚ΠΎ ΠΏΠΎΠ·ΠΎΡ€, вСдь Spring – нСвСроятно ΠΌΠΎΡ‰Π½Ρ‹ΠΉ инструмСнт, Ссли получится ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Π΅Π³ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ. Spring Data JPA прСдоставляСт простоС ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ рСляционными Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π±Π΅Π· написания классов DAO, Ρ‚Π°ΠΊΠΆΠ΅ Spring Data JPA позволяСт ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‚ ΠΆΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» ΠΏΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡŽ ΠΊ NoSQL Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°ΠΌ Π΄Π°Π½Π½Ρ‹Ρ…, Ссли получится ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Π΅Π³ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Spring Π²Ρ‹ ΠΈΠΌΠ΅Π΅Ρ‚Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒ enterprise-ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡŽ, доступ ΠΊ API самых популярных ΡΠΎΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… сСрвисов для Π²Π°ΡˆΠΈΡ… Π²Π΅Π±- ΠΈΠ»ΠΈ android-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, позаботится ΠΎ бСзопасности вашСго прилоТСния посрСдством Spring Security, Π½ΠΎ, ΠΎΠΏΡΡ‚ΡŒ ΠΆΠ΅, Ссли Ρƒ вас получится ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ всС ΡΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ.

ΠŸΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΠ΅ прилоТСния Π½Π° основС Spring ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‡Π΅Π½ΡŒ Π±ΠΎΠ»Π΅Π·Π½Π΅Π½Π½Ρ‹ΠΌ процСссом. ΠžΡ‚Ρ‡Π°ΡΡ‚ΠΈ это ΠΈΠ·-Π·Π° большого количСства ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ² ΠΏΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ. НапримСр, стоит Π»ΠΈ ΠΎΡΠ²Π°ΠΈΠ²Π°Ρ‚ΡŒ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Spring Data JPA, Ссли Π²Ρ‹ ΡƒΠΆΠ΅ ΠΏΠΎΡ‚Ρ€Π°Ρ‚ΠΈΠ»ΠΈ врСмя Π½Π° ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠ΅ JdbcTemplate ΠΈ Hibernate/JPA? Какая Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ Spring Data REST ΠΈ Spring HATEOAS?

Π”Ρ€ΡƒΠ³ΠΈΠΌ ΠΎΡΠ»ΠΎΠΆΠ½ΡΡŽΡ‰ΠΈΠΌ Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΎΠΌ являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Spring Ρ€Π΅Π΄ΠΊΠΎ ΠΏΡ€ΠΈΠ·Π½Π°Π΅Ρ‚ Ρ‡Ρ‚ΠΎ-Π»ΠΈΠ±ΠΎ deprecated, ΠΈ Π½Π΅ прСдоставляСт достаточной ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ для принятия обоснованного Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΏΠΎ Π²Ρ‹Π±ΠΎΡ€Ρƒ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ, устранСния Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·Π½Ρ‹Ρ… ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π΄Ρ€ΡƒΠ³ΠΈΡ… часто Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ. Если Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΠΈΡΠΊΠ°Ρ‚ΡŒ Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ устранСния ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ Π½Π΅ΠΏΠΎΠ»Π°Π΄ΠΊΠΈ, ссылки Π½Π° ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠ΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹ ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π±ΡƒΠ΄ΡƒΡ‚ Π² Ρ‚ΠΎΠΏΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² поиска. По большСй части ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΈΠ·-Π·Π° этого XML-конфигурация остаСтся Ρ‚Π°ΠΊΠΎΠΉ распространённой, нСвзирая Π½Π° простоту ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π½Π° основС Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΉ. ВмСсто использования чистой систСмы шаблонов Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ Thymeleaf ΠΈΠ»ΠΈ Velocity, Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ примСняСтся JSP с JSTL.

Π–Π°ΠΆΠ΄Π° ΠΊ Π»ΠΈΠΊΠ²ΠΈΠ΄Π°Ρ†ΠΈΠΈ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ угасала Ρƒ создатСлСй Spring. Π’Π΄ΠΎΡ…Π½ΠΎΠ²ΠΈΠ²ΡˆΠΈΡΡŒ инструмСнтом ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки Rails, ΠΎΠ½ΠΈ ΠΏΡ€Π΅Π·Π΅Π½Ρ‚ΠΎΠ²Π°Π»ΠΈ Spring Roo – систСму быстрой Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, которая ΠΊΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ элСмСнты, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Π²Π΅Π±-ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρ‹ ΠΈΠ»ΠΈ JPA сущности посрСдством ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, для Π½Π΅Ρ‚Ρ€ΠΈΠ²ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ использования, ΠΎΡΠ²ΠΎΠΈΡ‚ΡŒ Spring Roo ΠΏΠΎΡ‡Ρ‚ΠΈ Ρ‚Π°ΠΊ ΠΆΠ΅ слоТно, ΠΊΠ°ΠΊ ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒ прилоТСния Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ. ΠœΠ½ΠΎΠ³ΠΈΡ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΎΡ‚Ρ‚Π°Π»ΠΊΠΈΠ²Π°Π»ΠΎ ΠΎΠ±ΠΈΠ»ΠΈΠ΅ Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΉ ΠΈ AspectJ-Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Roo повсСмСстно добавляСт Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ для обСспСчСния своСй β€œΠΌΠ°Π³ΠΈΠΈβ€. Π₯отя ΠΈ заявляСтся, Ρ‡Ρ‚ΠΎ Roo ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΈ Π±Π΅Π·Π±ΠΎΠ»Π΅Π·Π½Π΅Π½Π½ΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΈΠ· ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Ссли понадобится, Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ оказываСтся Π±ΠΎΠ»Π΅Π΅ суровой, Ρ‡Π΅ΠΌ тСория. И Π΄Π°ΠΆΠ΅ Ссли Ρƒ вас всС ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ, конвСртация AspectJ Π² Java Π½Π°ΠΏΡ€ΠΎΡ‡ΡŒ Π»ΠΈΡˆΠ°Π΅Ρ‚ вас возмоТности ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ магичСским инструмСнтом ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки.

Spring Boot – ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ гСнСрация срСдств упрощСния процСсса ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Spring ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Он Π½Π΅ являСтся срСдством автоматичСской Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ΄Π°, Π° прСдставляСт собой ΠΏΠ»Π°Π³ΠΈΠ½ для систСмы Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ сборки ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² (ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Maven ΠΈ Gradle).

Плагин прСдоставляСт возмоТности для тСстирования ΠΈ разворачивания Spring прилоТСния. Команда mvn spring-boot:run обСспСчиваСт запуск вашСго прилоТСния Π½Π° ΠΏΠΎΡ€Ρ‚Ρƒ 8080. Π­Ρ‚ΠΎ Ρ‡Π΅ΠΌ-Ρ‚ΠΎ Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ‚ довольно популярный ΠΏΠ»Π°Π³ΠΈΠ½ Maven Jetty. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Spring Boot позволяСт ΡƒΠΏΠ°ΠΊΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ jar-Ρ„Π°ΠΉΠ», с Π²Π½Π΅Π΄Ρ€Π΅Π½Π½Ρ‹ΠΌ ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½Ρ‹ΠΌ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠΌ Tomcat. Π­Ρ‚ΠΎΡ‚ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ позаимствован Ρƒ ΠΌΠΎΠ΄Π΅Π»ΠΈ развСртывания ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° Play (вмСстС с Ρ‚Π΅ΠΌ Π²Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Π΅ war-Ρ„Π°ΠΉΠ»Ρ‹).

Основная Π²Ρ‹Π³ΠΎΠ΄Π° Spring Boot – ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ рСсурсов исходя ΠΈΠ· содСрТания classpath. НапримСр, Ссли pom.xml Ρ„Π°ΠΉΠ» вашСго Maven ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° содСрТит JPA зависимости ΠΈ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ PostgreSQL, Spring Boot настроит persistence-ΠΌΠΎΠ΄ΡƒΠ»ΡŒ для PostgreSQL. Если Π²Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π²Π΅Π±-Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ, Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ сконфигурированный ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Spring MVC. Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½Π° ΠΏΠ΅Ρ€ΡΠΈΡΡ‚Π΅Π½Ρ‚Π½ΠΎΡΡ‚ΡŒ ΠΈ Π½ΠΈΡ‡Π΅Π³ΠΎ ΠΊΡ€ΠΎΠΌΠ΅ этого, Spring Boot сконфигурируСт Hibernate ΠΊΠ°ΠΊ JPA ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€ с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ… HSQLDB. Если Π²Ρ‹ создаСтС Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π½ΠΎ Π½Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚Π΅ Π½ΠΈΡ‡Π΅Π³ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, Spring Boot сконфигурируСт view resolver для систСмы шаблонов Thymeleaf.

Говоря ΠΎ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Spring Boot достаточно ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π΅Π½ Π² этом ΠΏΠ»Π°Π½Π΅. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π΅ всСгда Π±Ρ‹Ρ‚ΡŒ согласны с Π΅Π³ΠΎ Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ настроСк, Π½ΠΎ, ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅, ΠΎΠ½ прСдоставит Π²Π°ΠΌ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ. Π­Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄, особСнно для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π½Π°Ρ‡Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ с настройками ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Π° ΠΏΠΎΡ‚ΠΎΠΌ, ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ изучСния ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ², Π²Π½ΠΎΡΠΈΡ‚ΡŒ измСнСния Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ. Π‘ΠΎΠ³Π»Π°ΡΠΈΡ‚Π΅ΡΡŒ, это Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ Ρ‡Π΅ΠΌ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΊΡƒΡ‡Ρƒ слоТных вопросов, Π±Π΅Π· Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… просто Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΡ‚Π°Ρ€Ρ‚ΠΎΠ²Π°Ρ‚ΡŒ. Π’Π΄ΠΎΠ±Π°Π²ΠΎΠΊ Π½Π° ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ страницС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π΅ΡΡ‚ΡŒ ряд ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½Ρ‹Ρ… Ρ‚ΡƒΡ‚ΠΎΡ€ΠΈΠ°Π»ΠΎΠ², ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΡ… быстро ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΈ практичСски Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ всС основныС Π²ΠΈΠ΄Ρ‹ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ β€œHello world”.

spring boot Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ΅Π½. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ spring boot Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ΅Π½. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ spring boot Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ΅Π½. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ spring boot Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ΅Π½. Π€ΠΎΡ‚ΠΎ spring boot Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ΅Π½

ΠŸΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΠ΅ инфраструктуры прилоТСния, фактичСски Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ Π½ΡƒΠΆΠ½Ρ‹Ρ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ Π² pom.xml:

Π° Ρ‚Π°ΠΊΠΆΠ΅ написании main Java-класс ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Для Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° случаСв измСнСния настроСк ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, достаточно ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ POM-Ρ„Π°ΠΉΠ». Π’Π°ΠΊ, Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π²Ρ‹ΡˆΠ΅ продСмонстрированно Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ зависимости для Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… H2. Spring Boot, видя Ρ‚Π°ΠΊΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅, ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΡƒΠ΅Ρ‚ persistence-ΠΌΠΎΠ΄ΡƒΠ»ΡŒ JPA для Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Н2 вмСсто, ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅ΠΌΠΎΠΉ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ HSQLDB. Если Π²Π°ΠΌ хочСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Jetty ΠΊΠ°ΠΊ встроСнный ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€, вмСсто ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Tomcat, просто Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ.

Π’ Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Spring Boot находится Π½Π° этапС становлСния, ΠΈ, бСзусловно, Π΄ΠΎ Π²Ρ‹Ρ…ΠΎΠ΄Π° Π½Π° ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ Π΅ΠΌΡƒ прСдстоит ΠΏΠ΅Ρ€Π΅ΠΆΠΈΡ‚ΡŒ Π½Π΅ΠΌΠ°Π»ΠΎ ΠΌΠ΅Ρ‚Π°ΠΌΠΎΡ€Ρ„ΠΎΠ·. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π΅Π³ΠΎ Π΅Ρ‰Π΅ Ρ€Π°Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для построСния ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹Ρ… систСм, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΎΠ½ Π²ΠΏΠΎΠ»Π½Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для выполнСния Ρ€Π°Π·Π½ΠΎΠ³ΠΎ Ρ€ΠΎΠ΄Π° ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ…, Ρ‚Ρ€Π΅Π½ΠΈΡ€ΠΎΠ²ΠΎΡ‡Π½Ρ‹Ρ… ΠΈ тСстовых ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², ΠΏΡ€ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½ΠΎ избавится ΠΎΡ‚ Π½Π΅ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ объСма Π½Π΅ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ, Ρ€ΡƒΡ‚ΠΈΠ½Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹, Π½ΠΈΠΊΠΎΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π½Π΅ связанной с созданиСм ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.

Π’ контСкстС ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… пСрспСктив пСрСрастания Spring Boot Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ Π² ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹ΠΉ инструмСнт для Spring Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, особСнно ΠΎΠ±Π½Π°Π΄Ρ‘ΠΆΠΈΠ²Π°Π΅Ρ‚ присутствиС ΠΏΡ€ΠΈΠ΅ΠΌΠ»Π΅ΠΌΠΎΠΉ тСхничСской Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ (ΠΏΡ€Π°Π²Π΄Π°, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° английском языкС ΠΈ всС Π΅Ρ‰Ρ‘ достаточно скудной, Π² сравнСнии с 800 страничной β€œΡΠ½Ρ†ΠΈΠΊΠ»ΠΎΠΏΠ΅Π΄ΠΈΠ΅ΠΉβ€ Spring Framework).

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² Spring Boot: созданиС простого REST API Π½Π° Java

spring boot Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ΅Π½. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ spring boot Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ΅Π½. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ spring boot Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ΅Π½. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ spring boot Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ΅Π½. Π€ΠΎΡ‚ΠΎ spring boot Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ΅Π½

Из-Π·Π° Π³Ρ€ΠΎΠΌΠΎΠ·Π΄ΠΊΠΎΠΉ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ зависимостСй настройка Spring для ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΏΡ€Π΅Π²Ρ€Π°Ρ‚ΠΈΠ»Π°ΡΡŒ Π² вСсьма ΡƒΡ‚ΠΎΠΌΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΈ ΠΏΠΎΠ΄Π²Π΅Ρ€ΠΆΠ΅Π½Π½ΠΎΠ΅ ошибкам занятиС. ОсобСнно это относится ΠΊ прилоТСниям, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Ρ‚Π°ΠΊΠΆΠ΅ нСсколько сторонних Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, создавая ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠ΅ ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠ΅ Java-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° основС Spring, Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡ‚ΡŒ ΠΎΠ΄Π½ΠΈ ΠΈ Ρ‚Π΅ ΠΆΠ΅ Ρ€ΡƒΡ‚ΠΈΠ½Π½Ρ‹Π΅ шаги ΠΏΠΎ Π΅Π³ΠΎ настройкС:

1. ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΠ΅ΠΌ Spring Boot

Авторы Spring Ρ€Π΅ΡˆΠΈΠ»ΠΈ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ настройки ΠΈ ΡƒΡΠΊΠΎΡ€ΡΡŽΡ‚ процСсс создания ΠΈ развСртывания Spring-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΏΠΎΠ΄ ΠΎΠ±Ρ‰ΠΈΠΌ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Spring Boot

Spring Boot β€” это ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, Ρ†Π΅Π»ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ являСтся ΡƒΠΏΡ€ΠΎΡ‰Π΅Π½ΠΈΠ΅ создания ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° основС Spring. Он позволяСт Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ простым способом ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ web-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, трСбуя ΠΎΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ усилий ΠΏΠΎ Π΅Π³ΠΎ настройкС ΠΈ написанию ΠΊΠΎΠ΄Π°

2. ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ Spring Boot

Spring Boot ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ большим Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΠΎΠΌ, Π½ΠΎ Π΅Π³ΠΎ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π·Π½Π°Ρ‡ΠΈΠΌΡ‹ΠΌΠΈ особСнностями ΡΠ²Π»ΡΡŽΡ‚ΡΡ: ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ зависимостями, автоматичСская конфигурация ΠΈ встроСнныС ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ сСрвлСтов

2.1. ΠŸΡ€ΠΎΡΡ‚ΠΎΡ‚Π° управлСния зависимостями

Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ процСсс управлСния зависимостями, Spring Boot нСявно ΡƒΠΏΠ°ΠΊΠΎΠ²Ρ‹Π²Π°Π΅Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ сторонниС зависимости для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° прилоТСния Π½Π° основС Spring ΠΈ прСдоставляСт ΠΈΡ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ посрСдством Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… starter-ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² (spring-boot-starter-web, spring-boot-starter-data-jpa ΠΈ Ρ‚.Π΄.)

Starter-ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой Π½Π°Π±ΠΎΡ€ ΡƒΠ΄ΠΎΠ±Π½Ρ‹Ρ… дСскрипторов зависимостСй, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π² своС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π­Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ для всСх, связанных со Spring Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ, избавляя программиста ΠΎΡ‚ лишнСго поиска ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² ΠΊΠΎΠ΄Π° ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈΠ· Π½ΠΈΡ… Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹Ρ… дСскрипторов зависимостСй (ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚Π°ΠΊΠΈΡ… дСскрипторов ΠΈ стартовых ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Π½ Π½ΠΈΠΆΠ΅)

НапримСр, Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Spring Data JPA для доступа ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…, просто Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ Π² свой ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ spring-boot-starter-data-jpa ΠΈ всС Π±ΡƒΠ΄Π΅Ρ‚ Π³ΠΎΡ‚ΠΎΠ²ΠΎ (Π²Π°ΠΌ Π½Π΅ придСтся ΠΈΡΠΊΠ°Ρ‚ΡŒ совмСстимыС Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Ρ‹ Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Hibernate)

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Spring web-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, просто Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ spring-boot-starter-web, которая подтянСт Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ всС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Spring MVC-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ spring-webmvc, jackson-json, validation-api ΠΈ Tomcat

Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, Spring Boot собираСт всС ΠΎΠ±Ρ‰ΠΈΠ΅ зависимости ΠΈ опрСдСляСт ΠΈΡ… Π² ΠΎΠ΄Π½ΠΎΠΌ мСстС, Ρ‡Ρ‚ΠΎ позволяСт Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ просто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ…, вмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·ΠΎΠ±Ρ€Π΅Ρ‚Π°Ρ‚ΡŒ колСсо ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ Π½ΠΎΠ²ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΏΡ€ΠΈ использовании Spring Boot, Ρ„Π°ΠΉΠ» pom.xml содСрТит Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ мСньшС строк, Ρ‡Π΅ΠΌ ΠΏΡ€ΠΈ использовании Π΅Π³ΠΎ Π² Spring-прилоТСниях

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ΡΡŒ ΠΊ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ со всСми Spring Boot starter-ΠΏΠ°ΠΊΠ΅Ρ‚Π°ΠΌΠΈ

2.2. АвтоматичСская конфигурация

Π’Ρ‚ΠΎΡ€ΠΎΠΉ прСвосходной Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ Spring Boot являСтся автоматичСская конфигурация прилоТСния

ПослС Π²Ρ‹Π±ΠΎΡ€Π° подходящСго starter-ΠΏΠ°ΠΊΠ΅Ρ‚Π°, Spring Boot попытаСтся автоматичСски Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Spring-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° основС Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½Ρ‹Ρ… Π²Π°ΠΌΠΈ jar-зависимостСй

НапримСр, Ссли Π²Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚Π΅ Spring-boot-starter-web, Spring Boot автоматичСски сконфигурируСт Ρ‚Π°ΠΊΠΈΠ΅ зарСгистрированныС Π±ΠΈΠ½Ρ‹, ΠΊΠ°ΠΊ DispatcherServlet, ResourceHandlers, MessageSource

Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ spring-boot-starter-jdbc, Spring Boot автоматичСски рСгистрируСт Π±ΠΈΠ½Ρ‹ DataSource, EntityManagerFactory, TransactionManager ΠΈ считываСт ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· Ρ„Π°ΠΉΠ»Π° application.properties

Если Π²Ρ‹ Π½Π΅ ΡΠΎΠ±ΠΈΡ€Π°Π΅Ρ‚Π΅ΡΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΈ Π½Π΅ прСдоставляСтС Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹Ρ… свСдСний ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ Π² Ρ€ΡƒΡ‡Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅, Spring Boot автоматичСски настроит Π±Π°Π·Ρƒ Π² памяти, Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ с вашСй стороны (ΠΏΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ H2 ΠΈΠ»ΠΈ HSQL Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ)

АвтоматичСская конфигурация ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° Π² любой ΠΌΠΎΠΌΠ΅Π½Ρ‚ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… настроСк

2.3. ВстроСнная ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° сСрвСра ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ β€” ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° сСрвлСтов

КаТдоС Spring Boot web-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ встроСнный web-сСрвСр. ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ Π½Π° список ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² сСрвлСтов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ «ΠΈΠ· ΠΊΠΎΡ€ΠΎΠ±ΠΊΠΈ»

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π΅ Π½Π°Π΄ΠΎ Π±Π΅ΡΠΏΠΎΠΊΠΎΠΈΡ‚ΡŒΡΡ ΠΎ настройкС ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° сСрвлСтов ΠΈ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠΈ прилоТСния Π½Π° Π½Π΅ΠΌ. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒΡΡ само, ΠΊΠ°ΠΊ исполняСмый jar-Ρ„Π°ΠΉΠ» с использованиСм встроСнного сСрвСра

Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ HTTP-сСрвСр, для этого достаточно ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ зависимости ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. Spring Boot прСдоставляСт ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ starter-ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ для Ρ€Π°Π·Π½Ρ‹Ρ… HTTP-сСрвСров

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½Ρ‹Ρ… web-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ со встроСнными сСрвСрами Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡƒΠ΄ΠΎΠ±Π½ΠΎ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Π½ΠΎ ΠΈ являСтся допустимым Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ для ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ уровня ΠΈ становится всС Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π² ΠΌΠΈΡ€Π΅ микросСрвисов. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ быстро ΡƒΠΏΠ°ΠΊΠΎΠ²Π°Ρ‚ΡŒ вСсь сСрвис (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ) Π² Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½ΠΎΠΌ ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π΅ΠΌΠΎΠΌ Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ‚Π°ΠΊΠΆΠ΅ прСдоставляСт API β€” Π΄Π΅Π»Π°Π΅Ρ‚ установку ΠΈ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ прилоТСния Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΡ‰Π΅

3. ВрСбования ΠΊ установкС Spring Boot

Для настройки ΠΈ запуска Spring Boot ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ трСбуСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

4. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Spring Boot прилоТСния

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ ΠΊ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅ΠΌ ΠΎΡ‡Π΅Π½ΡŒ простой REST API для ΠΏΡ€ΠΈΠ΅ΠΌΠ° ΠΏΠ»Π°Ρ‚Π΅ΠΆΠ΅ΠΉ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ возмоТности Spring Boot

4.1. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ web-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° с использованиСм Maven

Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Maven-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ Π²Π°ΠΌΠΈ IDE, Π½Π°Π·Π²Π°Π² Π΅Π³ΠΎ SpringBootRestService

ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π²Π΅Ρ€ΡΠΈΡŽ Java 8+, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Spring Boot Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Π½Π½ΠΈΠΌΠΈ вСрсиями

4.2. ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ pom.xml

Π’Ρ‚ΠΎΡ€Ρ‹ΠΌ шагом Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Spring Boot Π² Ρ„Π°ΠΉΠ»Π΅ pom.xml

ВсС прилоТСния Spring Boot ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΎΡ‚ spring-boot-starter-parent, поэтому ΠΏΠ΅Ρ€Π΅Π΄ дальнСйшим ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ зависимостСй, Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ starter-parent ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Π’.ΠΊ. ΠΌΡ‹ создаСм REST API, Ρ‚ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π² качСствС зависимости ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ spring-boot-starter-web, которая нСявно опрСдСляСт всС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ зависимости, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ spring-core, spring-web, spring-webmvc, servlet api, ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ jackson-databind, поэтому просто Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π² pom.xml ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ jar-Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ автоматичСски ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π² ваш ΠΏΡ€ΠΎΠ΅ΠΊΡ‚:

spring boot Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ΅Π½. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ spring boot Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ΅Π½. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ spring boot Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ΅Π½. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ spring boot Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ΅Π½. Π€ΠΎΡ‚ΠΎ spring boot Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ΅Π½

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ шаг β€” добавляСм Spring Boot ΠΏΠ»Π°Π³ΠΈΠ½:

ПослСдний шаг β€” ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Maven Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Π» исполняСмый jar-Ρ„Π°ΠΉΠ» ΠΏΡ€ΠΈ сборкС:

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΠΎΠ»Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» pom.xml:

Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΎΠ΄Π½Ρƒ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ web-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

4.3. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ рСсурсов REST

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ собираСмся ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ ΠΏΠ»Π°Ρ‚Π΅ΠΆΠ΅ΠΉ вмСстС с POJO-классами для запросов ΠΈ ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ²

НапишСм класс запроса ΠΏΠ»Π°Ρ‚Π΅ΠΆΠ°:

А Ρ‚Π°ΠΊΠΆΠ΅ класс, ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹ΠΉ нашим сСрвисом:

А Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ создадим ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€:

4.4. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ основного класса прилоТСния

Π­Ρ‚ΠΎΡ‚ послСдний шаг Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² создании класса ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΈ запуска прилоТСния. Spring Boot ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π½ΠΎΠ²ΡƒΡŽ Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΡŽ @SpringBootApplication, которая эквивалСнтна использованию @Configuration, @EnableAutoConfiguration ΠΈ @ComponentScan с ΠΈΡ… Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌΠΈ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π²Π°ΠΌ просто Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ класс, Π°Π½Π½ΠΎΡ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ @SpringBootApplication, Π° Spring Boot Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ настройку ΠΈ отсканируСт ваши рСсурсы Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ ΠΏΠ°ΠΊΠ΅Ρ‚Π΅:

5. Π Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ прилоТСния Spring Boot

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ΠΉ Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒΡŽ Spring Boot β€” это встроСнный сСрвСр. ВсС, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ β€” это ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ исполняСмый jar-Ρ„Π°ΠΉΠ» с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Maven ΠΈ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π΅Π³ΠΎ, ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ΅ Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅:

Наш REST API Π·Π°ΠΏΡƒΡ‰Π΅Π½ ΠΈ Π³ΠΎΡ‚ΠΎΠ² ΠΎΠ±ΡΠ»ΡƒΠΆΠΈΠ²Π°Ρ‚ΡŒ запросы Ρ‡Π΅Ρ€Π΅Π· ΠΏΠΎΡ€Ρ‚ 8080 (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ)

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрСли возмоТности Spring Boot ΠΈ создали ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ с использованиСм встроСнного сСрвСра

Π’ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π΅ ΠΎΠ±Π½ΠΎΠ²ΠΈΠ»ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ:

UPDATE:

Как Π·Π°ΠΌΠ΅Ρ‚ΠΈΠ» Lure_of_Chaos, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΡƒΠΆΠ΅ всС ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ автоматичСски Ρ‡Π΅Ρ€Π΅Π· SPRING INITIALIZR. ΠŸΡ€ΠΈΡ‡Π΅ΠΌ Π½Π΅ выходя ΠΈΠ· любимой JetBrains IntelliJ IDEA.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

11 вопросов Π½Π° собСсСдовании ΠΏΠΎ Spring Boot, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ Π·Π°Π΄ΡƒΠΌΠ°Ρ‚ΡŒΡΡ

spring boot Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ΅Π½. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ spring boot Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ΅Π½. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ spring boot Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ΅Π½. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ spring boot Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ΅Π½. Π€ΠΎΡ‚ΠΎ spring boot Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ΅Π½

Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ списков вопросов ΠΈΠ½Ρ‚Π΅Ρ€Π²ΡŒΡŽ ΠΏΠΎ Boot Π·Π°ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ вас Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Ρ‚ΡŒ случайныС Π΄Π΅Ρ‚Π°Π»ΠΈ ΠΈΠ· Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Spring Boot. Но Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΠ΅ β€” плохая Π·Π°ΠΌΠ΅Π½Π° истинному пониманию ΠΈ увСрСнности Π² Π·Π½Π°Π½ΠΈΠΈ Spring Boot.

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ сСгодня ΠΌΡ‹ собираСмся ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄. ВмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΡΡ‚ΡŒ 50 вопросов ΠΏΠΎ ΠΌΠ΅Π»ΠΎΡ‡Π°ΠΌ Spring Boot, ΠΌΡ‹ сосрСдоточимся Π½Π° 11, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ заставят вас Π·Π°Π΄ΡƒΠΌΠ°Ρ‚ΡŒΡΡ ΠΈ, Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΌΠ½ΠΎΠ³ΠΎΠΌΡƒ Π½Π°ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ Π½Π° этом ΠΏΡƒΡ‚ΠΈ.

Π’ΠΎΡ‚ эти вопросы Π² ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠΌ порядкС.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Ссли Π²Ρ‹ сами ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚Π΅ ΠΈΠ½Ρ‚Π΅Ρ€Π²ΡŒΡŽ ΠΏΠΎ Spring Boot, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Ρ‹ Π·Π°Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π·Π°Π΄Π°Ρ‚ΡŒ эти вопросы Π² ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅, Π²Π΅Π΄ΡƒΡ‰Π΅ΠΌ ΠΊ обсуТдСниям, вмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΆΠΈΠ΄Π°Ρ‚ΡŒ ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ² ΠΈΠ· ΡƒΡ‡Π΅Π±Π½ΠΈΠΊΠΎΠ²

Π£Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ Π»ΠΎΠΆΠ½ΠΎΠ΅.

Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, Spring Boot Π½Π΅ привязан Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊ Π²Π΅Π±-прилоТСниям, хотя Ρ‚Π°ΠΊΠΎΠ΅ Π²ΠΏΠ΅Ρ‡Π°Ρ‚Π»Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ spring-boot-starter-web ΠΈ, ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Π°Π²Ρ‚ΠΎΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ Spring Boot для Π²Π΅Π±-сайтов. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Spring Boot Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΈΡΠ°Ρ‚ΡŒ всС Π²ΠΈΠ΄Ρ‹ сСрвисов, ΠΎΡ‚ ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹Ρ… Π·Π°Π΄Π°Π½ΠΈΠΉ ΠΈ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки Π΄ΠΎ сСрвСрных ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ΠΎΠ±ΠΌΠ΅Π½Π° сообщСниями ΠΈ Ρ€Π΅Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.

2. Π’ Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ Spring Boot ΠΈ Spring MVC? Или ΠΌΠ΅ΠΆΠ΄Ρƒ Spring Boot ΠΈ Spring Framework? ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π»ΠΈ Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… вмСстС Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅?

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Spring ΠΎΡ‚ΠΊΡƒΠ΄Π° Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ свойства прилоТСния ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π²Π΅Π±-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ JSON. Spring Boot, с Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, Π±Π΅Ρ€Π΅Ρ‚ эти ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ части ΠΈ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ настраиваСт ΠΈΡ… для вас.

Он всСгда автоматичСски ΠΈΡ‰Π΅Ρ‚ Ρ„Π°ΠΉΠ»Ρ‹ application.properties Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π·Π°Ρ€Π°Π½Π΅Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… мСстах ΠΈ ​​считываСт ΠΈΡ….

Он всСгда Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚ встроСнный Tomcat, поэтому Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ сразу ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ написания Π²Π°ΡˆΠΈΡ… @RestControllers ΠΈ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΏΠΈΡΠ°Ρ‚ΡŒ Π²Π΅Π±-прилоТСния.

Он автоматичСски настраиваСт всС для ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ / получСния JSON, Π½Π΅ бСспокоясь ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… зависимостях Maven / Gradle. ВсС, ΠΏΡƒΡ‚Π΅ΠΌ запуска основного ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π² классС Java, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ аннотируСтся Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠ΅ΠΉ @SpringBootApplication.

Если это объяснСниС ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ оставляСт Ρƒ вас вопросы, ΠΎΠ·Π½Π°ΠΊΠΎΠΌΡŒΡ‚Π΅ΡΡŒ с этим ΠΎΠ±ΡˆΠΈΡ€Π½Ρ‹ΠΌ руководством ΠΏΠΎ Spring Framework, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ освСщаСт эту Ρ‚Π΅ΠΌΡƒ.

3. НазовитС Π΄Π²Π° способа ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Spring Boot с нуля? ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΡƒΠ·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ Spring Boot стартСры Π½ΡƒΠΆΠ½Ρ‹ Π²Π°ΡˆΠ΅ΠΌΡƒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ?

Π§Ρ‚ΠΎ касаСтся стартСров, Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ ΠΈ ΠΈΠΌΠ΅Ρ‚ΡŒ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠΏΡ‹Ρ‚Π°. Если Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ с Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ, Π²Ρ‹ Π½Π°Ρ‡Π½Π΅Ρ‚Π΅ с spring-boot-starter-web, Π° Π·Π°Ρ‚Π΅ΠΌ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ стартСр ΠΈΠ· Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ, ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‹ Π·Π°Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΡŽ. Π§Π΅Ρ€Π΅Π· Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ врСмя Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π΅ прСдставлСниС ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊΠΈΠ΅ стартСры Π²Π°ΠΌ Π½ΡƒΠΆΠ½Ρ‹ для вашСй Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ.

4. ΠŸΠΎΡ‡Π΅ΠΌΡƒ Π²Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ вСрсии зависимостСй Π² Ρ„Π°ΠΉΠ»Π΅ pom.xml ΠΏΡ€ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ сторонних Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ? Π’Π΅Ρ€Π½ΠΎ Π»ΠΈ это для всСх сторонних Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΈΠ»ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ…? Как ΡƒΠ·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Spring Boot?

Π­Ρ‚ΠΎ ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ Spring Boot выполняСт Π·Π° вас Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ зависимостями.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ список всСх ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… Π² настоящСС врСмя сторонних Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΈ вСрсий Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ spring-boot-dependencies.

5. Π’Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ своС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ настраиваСмым, скаТСм, ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ€Π°Π·Π½ΠΎΠ΅ соСдинСниС с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ… для срСды Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ срСды. КакиС Ρƒ вас Π΅ΡΡ‚ΡŒ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹?

Π’Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ эти мСстополоТСния ΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ Π½Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ свойств Spring Boot с настраиваСмым PropertySourceProvider ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ тяТСлыС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ сСрвСр ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Spring-Cloud.

Π’Π°ΠΌ Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚Π΅ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΡŽ Π½Π΅Ρ‡Ρ‘Ρ‚ΠΊΠΎΠΉ привязки свойств Spring (Relaxed properties binding), ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ²ΡΠ·Ρ‹Π²Π°Ρ‚ΡŒ свойства ΠΈΠ· этих мСст со свойствами ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π±Π΅Π· явного совпадСния ΠΈΠΌΠ΅Π½.

6. Π’Π΅Ρ€Π½ΠΎ ΠΈΠ»ΠΈ Π½Π΅Π²Π΅Ρ€Π½ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅: Β«ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Spring Boot Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Thymeleaf Π² качСствС ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° создания шаблонов HTMLΒ». КакиС Ρƒ вас Π΅ΡΡ‚ΡŒ возмоТности для Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π° HTML?

Π£Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ Π»ΠΎΠΆΠ½ΠΎΠ΅.

Spring Boot Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ°ΠΌΠΈ шаблонов HTML, ΠΈ хотя Thymeleaf являСтся популярным Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½ со Spring, Π²Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Freemarker, Velocity ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ JSP (хотя это ΠΈ Π½Π΅ строго ΡˆΠ°Π±Π»ΠΎΠ½Π½Ρ‹ΠΉ Π΄Π²ΠΈΠΆΠΎΠΊ).

ΠžΠ±Ρ‹Ρ‡Π½ΠΎ рСкомСндуСтся Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Π°ΠΌ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡƒΠ΄ΠΎΠ±Π΅Π½ / ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² вашСй ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ.

7. Как ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ доступ ΠΊ рСляционной Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Spring Boot? КакиС Ρƒ вас Π΅ΡΡ‚ΡŒ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹?

Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ‚Π°ΠΊΠΆΠ΅ Π±ΠΎΠ»Π΅Π΅ Π»Π΅Π³ΠΊΠΈΠ΅ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ jOOQ ΠΈΠ»ΠΈ myBatis. НаконСц, Π²Ρ‹ всСгда ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΡ†ΠΈΠΈ NoSQL, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ MongoDB ΠΈ Ρ‚. Π΄.

8. Π’Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΆΡƒΡ€Π½Π°Π»Π° Π² своСм ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, Π½ΠΎ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Ρ€Π°Π·Π»ΠΈΡ‡Π°Ρ‚ΡŒ ΡƒΡ€ΠΎΠ²Π½ΠΈ ΠΆΡƒΡ€Π½Π°Π»Π° Π½Π° вашСм ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ ΠΈ ΡƒΡ€ΠΎΠ²Π½ΠΈ ΠΆΡƒΡ€Π½Π°Π»Π° Π² Ρ€Π°Π·Π½Ρ‹Ρ… срСдах (qa, test, prod). КакиС Ρƒ вас Π΅ΡΡ‚ΡŒ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹?

Когда Π΄Π΅Π»ΠΎ Π΄ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ Π΄ΠΎ настройки Π²Ρ‹Π²ΠΎΠ΄Π°, ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹:

НСпосрСдствСнно Π² Ρ„Π°ΠΉΠ»Π΅ application.properties (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ Π² срСдах DEV ΠΈ PRD).

Π’ зависимости ΠΎΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ структуры вСдСния ΠΆΡƒΡ€Π½Π°Π»Π°, ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ настраиваСмого Ρ„Π°ΠΉΠ»Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, logback-spring.xml).

Или Π΄Π°ΠΆΠ΅ Ρ‡Π΅Ρ€Π΅Π· JMX Π²ΠΎ врСмя выполнСния.

Π”Π²Π΅ популярныС соврСмСнныС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ вСдСния ΠΆΡƒΡ€Π½Π°Π»Π°, Logback ΠΈ Log4j2, Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ Π³ΠΎΡ€ΡΡ‡ΡƒΡŽ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ вСдСния ΠΆΡƒΡ€Π½Π°Π»Π° Π±Π΅Π· нСобходимости ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ вашСго прилоТСния.

9. Как ΠΏΡ€ΠΎΡ‰Π΅ всСго Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Spring Boot Π² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ срСдС? КакиС Π΅Ρ‰Π΅ Π΅ΡΡ‚ΡŒ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹?

10. Π’Π°ΠΌ сказали Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Β«Spring SecurityΒ» Π² вашСм ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ. Π§Ρ‚ΠΎ происходит, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ добавляСтС стартСр Spring Security Π² своС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅?

Π­Ρ‚ΠΎ вопрос с ΠΏΠΎΠ΄Π²ΠΎΡ…ΠΎΠΌ. ΠŸΡ€ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ Spring Security Starter Π² вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΠΎ Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Ρ‚ΡŒ Π»ΠΎΠ³ΠΈΠ½ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ Π²Π°ΡˆΠ΅ΠΌΡƒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ° Ρ„ΠΎΡ€ΠΌ / ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Π΅ Ρ‚ΠΎΡ‡ΠΊΠΈ REST Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΈΠ½Π°Ρ‡Π΅ ΠΈΠ»ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½Ρ‹.

Π‘ΡƒΡ‚ΡŒ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Β«Π½Π΅ просто Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚Π΅Β» Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Spring Boot, Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Ρ‡Π΅Ρ‚ΠΊΠΎΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π΄Π΅Π»Π°Π΅Ρ‚Π΅.

11. Как ΡƒΠ·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ Π°Π²Ρ‚ΠΎΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Spring Boot ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ запускС ΠΈ ΠΊΠ°ΠΊΠΈΠ΅ условия ΠΎΡ†Π΅Π½ΠΈΠ²Π°ΡŽΡ‚ΡΡ?

Spring Boot Actuator ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ эту ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Π΅ Ρ‚ΠΎΡ‡ΠΊΠΈ HTTP ΠΈΠ»ΠΈ JMX. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Spring Boot с Ρ„Π»Π°Π³ΠΎΠΌ Β«—debugΒ».

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ информация ΠΎΠ± ΠΎΡ†Π΅Π½ΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… условиях Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ «сырая» ΠΈ Π΅Π΅ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ ΠΏΠ΅Ρ€Π΅Π²Π°Ρ€ΠΈΡ‚ΡŒ. Для этого ΠΏΡ€ΠΎΡ‡Ρ‚ΠΈΡ‚Π΅ это руководство, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚Π΅, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π°Π²Ρ‚ΠΎΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Spring Boot.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Π½Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΠΈ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΎΡ‚Π²Π΅Ρ‚ΠΈΡ‚Π΅ Π½Π° эти вопросы Π½Π° собствСнном собСсСдовании ΠΏΠΎ Spring Boot, хотя Π·Π½Π°Π½ΠΈΠ΅ (ΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅) ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ² Π½Π° Π½ΠΈΡ… Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΡ‚Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΡ‡Π½ΠΎΠΉ основой для любого ΠΈΠ½Ρ‚Π΅Ρ€Π²ΡŒΡŽ.

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ Π³Π»ΡƒΠ±ΠΎΠΊΠΎΠ΅ прСдставлСниС ΠΎΠ±ΠΎ всСй экосистСмС Spring, Π²Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΡΡ‚Π°Ρ‚ΡŒΡΠΌΠΈ ΠΎ Spring Π² Π±Π»ΠΎΠ³Π΅ Π°Π²Ρ‚ΠΎΡ€Π°.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊΠ°. ΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‹ 2 статСй ΠΈΠ· Π±Π»ΠΎΠ³Π° Π°Π²Ρ‚ΠΎΡ€Π° ΠΎ Spring Π΅ΡΡ‚ΡŒ Π½Π° Π₯Π°Π±Ρ€:

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *