Spring Boot med dvale

1. Oversigt

I denne artikel vil vi se på, hvordan du bruger Spring Boot med dvale.

Vi bygger en simpel Spring Boot-applikation og ser, hvor let det er at integrere det med dvale.

2. Bootstrapping af applikationen

Vi bruger Spring Initializr til at starte vores Spring Boot-applikation. I dette eksempel bruger vi kun de nødvendige konfigurationer og afhængigheder til at integrere dvale og tilføje Internettet, JPA, og H2 afhængigheder. Vi forklarer disse afhængigheder i det næste afsnit.

Lad os generere projektet og åbne det i vores IDE. Vi kan kontrollere den genererede projektstruktur og identificere de konfigurationsfiler, vi har brug for.

Sådan ser projektstrukturen ud:

3. Maven-afhængigheder

Hvis vi åbner op pom.xml, vi ser, at vi har spring-boot-starter-web og spring-boot-starter-test som maven afhængigheder. Som deres navne antyder, starter disse afhængigheder i Spring Boot.

Lad os se hurtigt på afhængighed, der trækker JPA:

 org.springframework.boot spring-boot-starter-data-jpa 

Denne afhængighed inkluderer JPA API, JPA Implementation, JDBC og andre nødvendige biblioteker. Da standard JPA-implementeringen er dvale, er denne afhængighed faktisk nok til at bringe den også ind.

Endelig bruger vi H2 som en meget let database til dette eksempel:

 com.h2database h2 runtime 

Vi kan bruge H2-konsollen til at kontrollere, at DB er i gang, også for en brugervenlig GUI til vores dataindtastning. Lad os fortsætte og aktivere det application.properites:

spring.h2.console.enabled = sandt

Dette er alt, hvad vi har brug for for at konfigurere til at inkludere dvale og H2 til vores eksempel. Vi kan kontrollere, at konfigurationen var vellykket i logfilerne, når vi starter Spring Boot-applikationen:

HHH000412: Hibernate Core {#Version}

HHH000206: hibernate.properties ikke fundet

HCANN000001: Hibernate Commons Annotations {#Version}

HHH000400: Brug af dialekt: org.hibernate.dialect.H2Dialect

Vi kan nu få adgang til H2-konsollen på localhost: // localhost: 8080 / h2-konsol /.

4. Oprettelse af enheden

For at kontrollere, at vores H2 fungerer korrekt, opretter vi først en JPA-enhed i en ny modeller folder:

@Entity public class Book {@Id @GeneratedValue private Lang id; privat strengnavn; // standard konstruktører // standard getters og setters}

Vi har nu en grundlæggende enhed, som H2 kan oprette en tabel fra. Genstart af applikationen og kontrol af H2-konsol, en ny tabel kaldet Bestil vil blive oprettet.

For at tilføje nogle indledende data til vores applikation er vi nødt til at oprette en ny SQL-fil med nogle indsætningserklæringer og sætte den i vores ressourcer folder. Vi kan bruge import.sql (Dvaletilstand) eller data.sql (Spring JDBC support) filer til indlæsning af data.

Her er vores eksempler på data:

indsæt i bogværdier (1, 'Tartar Steppen'); indsæt i bogværdier (2, 'Poem Strip'); indsæt i bogværdier (3, 'Restless Nights: Selected Stories of Dino Buzzati');

Igen kan vi genstarte Spring Boot-applikationen og kontrollere H2-konsollen - dataene er nu i Bestil bord.

5. Oprettelse af lager og service

Vi fortsætter med at oprette de grundlæggende komponenter for at teste vores ansøgning. Lad os først tilføje JPA Repository i et nyt opbevaringssteder folder:

@Repository offentlig grænseflade BookRepository udvider JpaRepository {}

Vi kan bruge JpaRepository interface fra Spring framework, som giver en standardimplementering af basisen CRUD operationer.

Lad os derefter tilføje BookService i en ny tjenester folder:

@Service offentlig klasse BookService {@Autowired private BookRepository bookRepository; offentlig liste liste () {return bookRepository.findAll (); }}

For at teste vores ansøgning skal vi kontrollere, at de oprettede data kan hentes fra liste() metode til tjenesten.

Vi skriver følgende SpringBootTest:

@RunWith (SpringRunner.class) @SpringBootTest offentlig klasse BookServiceUnitTest {@Autowired private BookService bookService; @Test offentlig ugyldigt nårApplicationStarts_thenHibernateCreatesInitialRecords () {List books = bookService.list (); Assert.assertEquals (books.size (), 3); }}

Ved at køre denne test kan vi kontrollere, at dvaletilstand skaber Bestil data, som derefter hentes med succes af vores service. Det var det, Hibernate kører med Spring Boot.

6. Navn på store bogstaver

Nogle gange kan det være nødvendigt at have tabelnavnene i vores database skrevet med store bogstaver. Som vi allerede ved, som standard genererer dvaletilstand navnene på tabellerne med små bogstaver.

Vi kunne også prøve at udtrykkeligt indstille tabelnavnet på denne måde:

@Entity (name = "BOOK") offentlig klasse Book {// medlemmer, standard getters og setters}

Det ville dog ikke fungere. Hvad der fungerer er at indstille denne ejendom i application.properties:

spring.jpa.hibernate.naming.physical-strategy = org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl

Som et resultat kan vi kontrollere i vores database, at tabellerne oprettes med store bogstaver.

7. Konklusion

I denne artikel så vi på, hvor let det er at integrere dvale med Spring Boot. Vi brugte H2-databasen som en meget let løsning til hukommelse.

Vi gav et komplet eksempel på en applikation, der bruger alle disse teknologier, og til sidst gav vi også et lille tip til, hvordan du indstiller tabelnavnene med store bogstaver i vores database.

Som altid kan alle kodestykker, der er nævnt i denne artikel, findes i vores GitHub-lager.