Tavaszi csizma hibernált állapotban
1. Áttekintés
Ebben a cikkben megnézzük, hogyan kell használni a tavaszi csomagtartót hibernált állapotban.
Készítünk egy egyszerű Spring Boot alkalmazást, és megnézzük, milyen egyszerű integrálni a hibernált állapotba.
2. Az alkalmazás indítása
A Spring Initializr programot a Spring Boot alkalmazás indításához fogjuk használni. Ebben a példában csak a szükséges konfigurációkat és függőségeket fogjuk használni a hibernálás integrálásához, hozzáadva Web, JPA, és H2 függőségek. Ezeket a függőségeket a következő részben ismertetjük.
Generáljuk a projektet, és nyissuk meg az IDE-nkben. Ellenőrizhetjük a létrehozott projekt felépítését és meghatározhatjuk a szükséges konfigurációs fájlokat.
Így fog kinézni a projekt szerkezete:
3. Maven-függőségek
Ha megnyílunk pom.xml, meglátjuk, hogy van tavasz-boot-starter-web és tavasz-csomagtartó-indító-teszt mint maven függőségek. Ahogy a nevük is sugallja, ezek a Spring Boot kezdő függőségei.
Vessünk egy gyors pillantást a JPA-t behálózó függőségre:
org.springframework.boot spring-boot-starter-data-jpa
Ez a függőség magában foglalja a JPA API-t, a JPA implementációt, a JDBC-t és más szükséges könyvtárakat. Mivel a JPA alapértelmezett megvalósítása a Hibernate, ez a függőség valójában elegendő annak behozatalához is.
Végül felhasználjuk H2 nagyon könnyű adatbázisként ehhez a példához:
com.h2database h2 futásidejű
A H2 konzol segítségével ellenőrizhetjük, hogy a DB működik-e, és egy felhasználóbarát grafikus felhasználói felületet is használunk az adatbevitelhez. Menjünk előre, és engedélyezzük alkalmazás.properites:
spring.h2.console.enabled = true
Mindössze annyit kellett beállítanunk, hogy a Hibernate és a H2 is szerepeljen a példánkban. A tavaszi indítás alkalmazás indításakor ellenőrizhetjük, hogy a konfiguráció sikeres volt-e a naplókban:
HHH000412: Hibernált mag {#Version}
HHH000206: hibernálás. A tulajdonságok nem találhatók
HCANN000001: Hibernate Commons kommentárok {#Version}
HHH000400: A dialektus használata: org.hibernate.dialect.H2Dialect
Most már elérhetjük a H2 konzolt a localhoston: // localhost: 8080 / h2-console /.
4. Az entitás létrehozása
Annak ellenőrzésére, hogy a H2 megfelelően működik-e, először létrehozunk egy JPA entitást egy újban modellek mappa:
@Entity public class Book {@Id @GeneratedValue private Long id; privát karakterlánc neve; // szabványos kivitelezők // szabványos szerelők és beállítók}
Van egy alapvető entitásunk, amelyből a H2 táblázatot készíthet. Indítsa újra az alkalmazást és ellenőrizze a H2 konzolt, egy új táblát Könyv létrejön.
Néhány kezdeti adat hozzáadásához alkalmazásunkhoz létre kell hoznunk egy új SQL fájlt, néhány beszúrási utasítással, és be kell tennünk a mi fájlunkba erőforrások mappába. Tudjuk használni import.sql (Hibernált támogatás) vagy adatok.sql (Tavaszi JDBC támogatás) fájlok az adatok betöltéséhez.
Íme a példánkra vonatkozó adatok:
beszúrás könyv szerinti értékekbe (1, „A tatár sztyeppe”); beszúrás könyvértékekbe (2, „Verscsík”); beszúrás könyv szerinti értékekbe (3, „Nyugtalan éjszakák: Dino Buzzati válogatott történetei”);
Ismét újraindíthatjuk a Spring Boot alkalmazást, és ellenőrizhetjük a H2 konzolt - az adatok most a Könyv asztal.
5. A tár és a szolgáltatás létrehozása
Folytatjuk az alapkomponensek létrehozását az alkalmazás tesztelése érdekében. Először vegyük fel a JPA-tárházat egy újba adattárak mappa:
@Repository nyilvános felület A BookRepository kiterjeszti a JpaRepository-t {}
Használhatjuk a JpaRepository interfész a Spring framework-től, amely alapértelmezett megvalósítást biztosít az basic számára CRUD tevékenységek.
Ezután tegyük hozzá a BookService egy új szolgáltatások mappa:
@Service public class BookService {@Autowired private BookRepository bookRepository; public List list () {return bookRepository.findAll (); }}
Alkalmazásunk teszteléséhez ellenőriznünk kell, hogy a létrehozott adatok lehívhatók-e a lista() a szolgáltatás módja.
A következőket fogjuk írni SpringBootTest:
@RunWith (SpringRunner.class) @SpringBootTest nyilvános osztály BookServiceUnitTest {@Autowired private BookService bookService; @Test public void whenApplicationStarts_thenHibernateCreatesInitialRecords () {List books = bookService.list (); Assert.assertEquals (könyvek.méret (), 3); }}
A teszt futtatásával ellenőrizhetjük, hogy a Hibernate létrehozta-e a Könyv adatokat, amelyeket szolgáltatásunk ezután sikeresen lekér. Ennyi volt, a Hibernate fut a Spring Boot-tal.
6. Nagybetűs táblázat neve
Előfordulhat, hogy az adatbázisunkban szereplő táblák nevét nagybetűvel kell megírnunk. Mint már tudjuk, A hibernálás alapértelmezés szerint a táblák nevét kisbetűvel generálja.
Megpróbálhatnánk kifejezetten megadni a táblázat nevét, így:
@Entity (name = "FOGLALÁS") public class Book {// tagok, szokásos getterek és beállítók}
Ez azonban nem működne. Ami működik, az beállítja ezt a tulajdonságot alkalmazás.tulajdonságok:
spring.jpa.hibernate.naming.physical-strategy = org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
Ennek eredményeként ellenőrizhetjük az adatbázisunkban, hogy a táblázatok sikeresen készültek-e nagybetűvel.
7. Következtetés
Ebben a cikkben megvizsgáltuk, milyen egyszerű a hibernálás integrálása a Spring Boot-ba. A H2 adatbázist nagyon könnyű memória-megoldásként használtuk.
Teljes példát adtunk egy olyan alkalmazásra, amely mindezeket a technológiákat használja, és végül egy kis tippet is adtunk arra, hogyan állítsuk be nagybetűvel az asztalunk nevét az adatbázisunkban.
Mint mindig, a cikkben említett összes kódrészlet megtalálható a GitHub-adattárunkban.