Java layihəsinin yaradılması haqqında silsilədən məqalə (digər materiallara keçidlər sonundadır). Onun məqsədi əsas texnologiyaları təhlil etməkdir, nəticə teleqram botunu yazmaqdır. Bu hissədə SpringBoot və Flyway-i işə salmağa çalışırıq. Nəzəriyyənin minimum miqdarı, istədiyiniz kimi))) Flyway/Liquibase-in son müqayisəsini qeyri-müəyyən müddətə buraxırıq və nöqtəyə çatırıq. Və buna baxmayaraq, artıq uzanıb. Flyway-i iki dəfə təsvir etməmək üçün onu dərhal gələcək JRTB layihəmizə əlavə etmək qərarına gəldim.
, çox modulludur:
Bunun bir hissəsi olaraq nə etməliyik?
- Maven əsasında SpringBoot tətbiqini işə salın.
- Orada Flyway əlavə edin: xoşbəxtlikdən, onlar asanlıqla inteqrasiya olunur.
- Nümunə verilənlər bazasında mövcud olan cədvəllər üçün bir sxem əlavə edin.
Flyway nədir
Bir şeyi istifadə etmək üçün əvvəlcə onun nə olduğunu və niyə olduğunu anlamaq lazımdır. Flyway verilənlər bazası versiyasına nəzarət vasitəsidir. Sözlər məlumdur, amma nədənsə anlayış əlavə olunmayıb, hə? Gəlin uçuş yolunun həll etdiyi problemi təsvir etməyə çalışaq. Tutaq ki, bir layihəmiz var. Dünyamızdakı hər şey kimi, mükəmməl deyil, ona görə də layihənin son variantını planlaşdırmaq və tərtib etmək mümkün deyildi. Hər dəfə müəyyən hesablanmayan nüanslar ortaya çıxır. Layihə öz işində verilənlər bazasından istifadə edir. Təbii ki, layihə dəyişərsə, verilənlər bazası strukturu da dəyişə bilər. Tutaq ki, layihəmizdəki obyektlərdən biri üçün yeni sahə əlavə edirik. Bunu necə etmək olar?- Bu sahəni müəssisəmizə əlavə edin, biznes məntiqinin işləməsi üçün hər şeyi yeniləyin.
- Verilənlər bazasını yeniləyin. Yeganə mümkün yol bunu əl ilə etməkdir. Bunun üçün siz daxil olub lazımi sql skriptini qeydiyyatdan keçirməlisiniz.
- Ancaq layihəmizi yerləşdirdiyimiz birdən çox yerimiz varsa, bunların hər birində bunu etmək lazımdırmı?
- və əgər geri qayıtmaq istəsək, verilənlər bazası strukturunun hazırda hansı vəziyyətdə olduğunu dəqiq necə bilə bilərik?
- Verilənlər bazası dəyişikliyinin uğurlu olduğuna necə əmin ola bilərik?
- Layihədə baş verən bütün verilənlər bazası dəyişikliklərini izləmək fürsətini necə əldə edə bilərəm?
SpringBoot + Flyway-i işə salın
Spring Boot nədir
Nə işə salırıq?... Nə və nə üçün etdiyimizi anlamaq üçün SpringBoot-un nə olduğuna qərar verməlisiniz. Birincisi, tez (yaxşı, çox tez) Bahar haqqında danışaq . Hal-hazırda, Java-da server proqramlarının hazırlanmasında faktiki sənaye standartıdır. Nəyin standartı? Bunu sizə necə izah edim? Bahar tətbiqin skeletidir, onun üzərinə "ət" atırıq - iş məntiqimiz. Baharın köməyi ilə (bundan sonra dilləri dəyişdirməyə vaxt itirməmək üçün bu izləmə kağızından istifadə edəcəyəm :D)) Bahar bizə hər şeyi etməyə başladığımız bir başlanğıc verir. Çoxşaxəli- Verilənlər bazası ilə işləmək istəyirsiniz? Münasibət istəyirsiniz? Siz qeyri-münasibət istəyirsiniz? Budur Spring Data ilə.
- http sorğuları ilə işləmək istəyirsiniz? Budur, Spring web (Bahar MVC).
- Bütün obyektləriniz üçün bir yerdə konteynerə ehtiyacınız varmı? Budur Spring Core.
- Fərqli rollar və komanda zənciri olması üçün bir layihədə təhlükəsizlik qurmaq lazımdırmı? Bahar Təhlükəsizliyi.
- Məhz belə bir şeyə sahib olmağın gözəl olacağını düşünəndə belə çıxır ki, Bahar artıq sizə lazım olan şeylərə malikdir və o, tez və asanlıqla inteqrasiya olunur.
SpringBoot işə salınır
Maven-in nə olduğunu artıq başa düşdüyümüz üçün ehtiyaclarımız üçün yeni bir layihə yaradaq. Bunun üçün sadəcə olaraq bu məsələ üçün xüsusi yaradılmış vebsayta daxil olmaq kifayətdir. Bu, Spring Initializr adlanır . Burada sizə lazım olanı doldurmalı və seçməlisiniz:- Layihə qurma aləti gradle və ya mavendir. Gördüyünüz kimi, artıq Qarışqanın adı belə çəkilmir. Bu, hansı tikinti alətlərinin vaxtınıza dəyər olduğuna dair yaxşı bir işarədir.
- Yaza biləcəyiniz dil java, kotlin, groovy-dir. Burada hər şey sadədir: hamısı JVM-ə bənzəyir və Java kodunu asanlıqla idarə edir. Yeri gəlmişkən, Kotlin-ə baxmağa dəyər. Groovy açıq şəkildə maraqsız oldu (bir vaxtlar yivlərə keçdilər, amma tez keçdi).
- Bahar versiyası... Burada Baharın əsas hissəsinin və onun modullarının versiyalarının ardıcıl olduğunu başa düşmək lazımdır.
- Layihə məlumatları. Mən artıq bunları təsvir etmişəm.
- Hansı arxivin toplanacağını seçirik - Jar və ya War.
- Yaxşı, bizim sevimli Java versiyası. Və son vaxtlar bu versiyalar çox olub... İllərlə gözlədilər, indi isə ildə iki olur.
- Maven - bu barədə əvvəllər sizinlə danışmağımız əbəs yerə deyil.
- Java bizim sevgilimizdir :D
- 2.2.11 versiyasını götürək. Niyə ən yenisi olmasın? Çünki nə qədər yenidirsə, orada bəzi səhvlərin olma şansı bir o qədər yüksəkdir. Bizim üçün hansı versiyanın əhəmiyyəti yoxdur, amma köhnəsi daha etibarlı olacaq. Buna görə də biz 2.2.11-i seçirik.
- Qrup: com.github.javarushcommunity
- Artefakt: springboot-flyway-demo
- Adı: SpringBoot + Flyway Demo
- Təsvir: Layihə SpringBoot və Flyway arasında inteqrasiyanı nümayiş etdirir . (Bəli, sənədləri yazmaq bacarığı inkişafın vacib hissəsidir :))
- Paketin adı: com.github.javarushcommunity.springbootflywaydemo . Burada dərhal tətbiqimizi işə salacaq bir siniflə bizim üçün əsas paket yaradacaqlar.
- Qablaşdırma: banka
- Java: 8. Gəlin, lokomotivdən qabağa getməyək və yaxşı köhnə səkkizi götürməyək. Niyə 11 deyil? Nə üçün? Nümunəmiz üçün, mən nöqtə görmürəm.
spring.datasource.url=jdbc:mysql://localhost:3306/flyway_demo_db
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
Yenidən əsas metodu işə salırıq və əldə edirik: İndi ən azı bir miqrasiya əlavə etməliyik. Miqrasiyanı düzgün yaratmaq üçün aşağıdakı şablonu götürməlisiniz: V<VERSION>__<NAME>.sql Bu şablondan istifadə edərək, müvafiq qovluqda V00001__Create_country_table.sql adlı miqrasiya faylı yaradacağıq : /src/main/resources/ db.migration/ . Gəlin orada ölkə cədvəli yaradaq. Verilənlər bazası haqqında ikinci məqalədən skripti götürək . Başlamazdan əvvəl gəlin daxil olaq və iş üçün verilənlər bazası yaradaq: flyway_demo_db. Gəlin bunu MysqlWorkbench vasitəsilə edək: İndi əsas metodu yenidən işə sala bilərik: Hər şey alındı, lakin layihədə hələ heç nə olmadığına görə o, işləməyi başa çatdırdı. Bununla belə, qeydlərdən aydın olur ki ( logların nə olduğunu oxuyun ) ki:
- Verilənlər bazasına uğurla qoşuldu.
- Miqrasiya təsdiqləndi və hər şey qaydasındadır.
- Flyway miqrasiyaları idarə etmək üçün cədvəl yaratdı.
- Və hansı miqrasiya 00001 başladı - ölkənin yaradılması uğurlu oldu.
Nəticə
Bu dəfə biz SpringBoot ilə birlikdə verilənlər bazası miqrasiya alətini başa düşməyi və istifadə etməyi öyrəndik. Bu məlumat, Flyway nümunəsindən istifadə edərək verilənlər bazası versiyasına nəzarət alətinin nə olduğunu başa düşmək üçün lazımdır. Dostlar, göstərdiyim layihənin mənbə kodu təşkilatımızda Github-da dərc olunub . Nümunəni bəyənirsinizsə, ona bir ulduz verin və mən başa düşəcəyəm ki, mənim işim faydalıdır və həqiqətən davam etməyə dəyər. Ənənəvi olaraq Github hesabıma abunə olmağı təklif edirəm . Onun vasitəsilə mən bütün işlərimi açıq mənbə və məqalələrimi daim müşayiət edən bütün demo layihələr üzərində aparıram. Oxuduğunuz üçün hər kəsə təşəkkür edirəm. Növbəti dəfə ərizəmizi yazacağıq. Gələcəkdə Docker-də bəzi zəruri nəzəriyyələr olacaq, lakin biz onu təcrübə ilə çox sulandıracağıq.faydalı bağlantılar
Bu gün çox faydalı bağlantılar yoxdur. Evgeni'nin videosuna diqqət yetirin, həqiqətən buna dəyər!- Baharda layihələr yaratmaq üçün sayt
- Evgeni Borisov - Bulaq inşaatçısı
- Flyway üçün Baharda Sənədləşmə
GO TO FULL VERSION