En guide til foråret i formørkelse STS

Java Top

Jeg har lige annonceret det nye Lær foråret kursus med fokus på det grundlæggende i Spring 5 og Spring Boot 2:

>> KONTROLLER KURSEN

1. Oversigt

Denne artikel illustrerer nogle af de nyttige funktioner i Eclipse Spring Tool Suite (STS) IDE, som er nyttige ved udvikling af Spring-applikationer.

Først viser vi fordelene ved at bruge STS sammenlignet med den traditionelle måde at opbygge applikationer med Eclipse på.

Derefter fokuserer vi på, hvordan man starter en applikation, hvordan man kører den, og hvordan man tilføjer yderligere afhængigheder. Endelig slutter vi med at tilføje applikationsargumenter.

2. STS hovedfunktioner

STS er et Eclipse-baseret udviklingsmiljø, der er tilpasset til udvikling af Spring applikationer.

Det giver et klar-til-brug miljø til at implementere, debug, køre og implementere dine applikationer. Det inkluderer også integration til Pivotal tc Server, Pivotal Cloud Foundry, Git, Maven og AspectJ. STS er bygget som en tilføjelse oven på de nyeste Eclipse-udgivelser.

2.1. Projektkonfiguration

STS forstår næsten alle de mest almindelige Java-projektstrukturer. Den parser konfigurationsfiler og viser derefter detaljerede oplysninger om definerede bønner, afhængigheder, brugte navneområder og derudover udtrækker oversigter for visse stereotyper.

2.2. STS-funktioner Oversigt

Eclipse STS validerer dit projekt og giver hurtige rettelser til dine applikationer. For eksempel, når man arbejder med Spring Data JPA, kan IDE bruges til at validere navne på forespørgselsmetoder (mere om dette i afsnit 6).

STS giver også en grafisk oversigt over alle bønnemetoder og deres gensidige forhold. Det kan være en god idé at se nærmere på de grafiske redaktører, der følger med STS, ved at se på de synspunkter, der er tilgængelige under menuerne. vindue, vis visning og så Forår henholdsvis.

STS tilbyder også andre nyttige funktioner, der ikke er begrænset til Spring-applikationer. Læseren anbefales at se på den fulde liste over funktioner, der kan findes her.

3. Oprettelse af en forårsprogram

Lad os starte med at starte en simpel applikation. Uden STS oprettes en Spring-applikation normalt ved hjælp af Spring Initializer-webstedet eller Spring Boot CLI. Dette kan forenkles ved at klikke på Opret Spring Starter Project fra dit dashboard i STS.

I Nyt Spring Starter-projekt brug enten standardindstillingerne eller foretag dine egne justeringer, og gå derefter til næste skærmbillede. Vælg Internettet og klik på finish. Dit pom.xml skal nu se ud som dette:

 org.springframework.boot spring-boot-starter-parent 1.3.6.RELEASE UTF-8 1.8 org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-test test 

Din version af Spring Boot kan være anderledes, men den nyeste version kan altid findes her.

4. Kørsel af applikationen

Den ovennævnte applikation kan startes ved at højreklikke på projektet og vælge Kør som Spring Boot-app. Uden STS vil du sandsynligvis køre applikationen fra kommandolinjen med følgende kommando:

$ mvn spring-boot: kør

Som standard startes Spring-applikationer med Tomcat, der kører på port 8080. På dette tidspunkt starter applikationen på port 8080 og gør stort set intet andet, da vi endnu ikke implementerede nogen kode. Afsnit 8 viser dig, hvordan du ændrer standardporten.

5. Logning og ANSI-konsol

Når du kører projektet fra IDE ved hjælp af kommandoen run, vil du bemærke, at konsollen udsender nogle flotte farvekodede logsætninger. Hvis du vil slå den fra, skal du gå til køre konfigurationer... og deaktiver afkrydsningsfeltet Aktivér ANSI-konsoloutput på den Spring Boot fanen. Alternativt kan du også deaktivere det ved at indstille en egenskabsværdi i application.properties fil.

spring.output.ansi.enabled = ALDRIG

Flere oplysninger om konfigurationen af ​​dine applikationslogfiler kan findes her.

6. JPA-forespørgsel Navnekontrol

Til tider kan implementering af et dataadgangslag være en besværlig aktivitet. En masse kedelpladekode skal muligvis skrives for at realisere enkle forespørgsler og udføre paginering. Spring Data JPA (JPA) har til formål at lette en sådan implementering af dataadgangslager betydeligt. Dette afsnit illustrerer nogle af fordelene ved at bruge JPA i forbindelse med STS.

For at komme i gang skal du tilføje følgende afhængighed for JPA til den tidligere genererede pom.xml:

 org.springframework.boot spring-boot-starter-data-jpa com.h2database h2 

Det har du måske bemærket version er ikke specificeret i ovenstående erklæring. Dette skyldes, at afhængigheder styres fra forældrene pom.xml:

 org.springframework.boot spring-boot-starter-parent 1.3.6.RELEASE 

For at få JPA til at fungere kræves det, at du korrekt definerer dine enhedsadministratorer og transaktionsadministratorer. Spring konfigurerer dog automatisk disse til dig. Det eneste, der er tilbage til udvikleren, er at oprette de faktiske enhedsklasser. Disse enheder styres af enhedsadministratoren, som igen oprettes af containeren. Lad os for eksempel oprette en enhedsklasse Foo ligesom:

@Entity offentlig klasse Foo implementerer Serializable {@Id @GeneratedValue privat heltal id; privat strengnavn; // Standard getters og setters}

Containeren scanner alle klasser, der er kommenteret med @Enhed fra roden til konfigurationspakken. Derefter opretter vi et JPA-lager til Foo enhed:

offentlig grænseflade FooRepository udvider JpaRepository {public Foo findByNames (String name); }

På dette tidspunkt har du måske allerede bemærket, at IDE nu markerer denne forespørgselsmetode med en undtagelse:

Ugyldig afledt forespørgsel! Ingen ejendomsnavne fundet for type Foo! 

Dette skyldes naturligvis, at vi ved et uheld har skrevet en 's' i metodens navn på JPA-arkivet. For at løse dette skal du fjerne de falske 's som sådan:

offentlig Foo findByName (strengnavn);

Bemærk, at nej @EnableJpaRepositories blev brugt på config-klassen. Dette skyldes, at containeren er AutoConfigration forregistrerer en til projektet.

7. Søg efter krukke

“Jar Type Search” er en funktion, der blev introduceret i STS 3.5.0. Det giver indholdsassisterede forslag i projekter til klasser, der (endnu) ikke er på klassestien. STS kan hjælpe dig med at tilføje afhængigheder til din POM-fil, hvis de endnu ikke er på klassestien.

Lad os for eksempel tilføje en linje til Foo enhedsklasse. For at dette eksempel fungerer korrekt, skal du først sikre dig, at importerklæringen for java.util.List er allerede til stede. Nu kan vi tilføje Google Guava som følger:

private Listestrings = Lister // ctrl + MELLEMRUM for at få kodefuldførelse

IDE vil foreslå flere afhængigheder, der skal føjes til klassestien. Tilføj afhængighed fra com.google.common.collect,tryk på retur og tilføj afhængigheden fra Guava. Guava-krukken føjes nu automatisk til din pom.xml fil sådan:

 com.google.guava guava 19.0 

Fra version STS 3.8.0 får du en bekræftelsesdialogboks, før STS foretager ændringer i din pom.xml.

8. Tilføjelse af applikationsargumenter

Et af de andre kraftfulde træk ved Spring er understøttelsen af ​​eksterne konfigurationer, som kan overføres til en applikation på flere måder, f.eks. som kommandolinjeargumenter, specificeret i egenskaber eller YAML-filer eller som systemegenskaber. I dette afsnit fokuserer vi på at tilføje en konfigurationsindstilling som applikationsstartargument ved hjælp af STS. Dette illustreres ved at konfigurere Tomcat til at starte på en anden port.

For at køre et program på en anden Tomcat-port end standard, kan du bruge kommandoen nedenfor, hvor en brugerdefineret port er angivet som kommandolinjeargument:

mvn spring-boot: run -Drun.arguments = "- server.port = 7070"

Når du bruger STS, skal du gå til løb menu. Vælg køre konfigurationer... i dialogboksen Kør konfigurationer skal du vælge Spring Boot-app fra venstre panel, og vælg demo - DemoApplication (dette vil være anderledes, hvis du ikke valgte standardprojektet). Fra (x) = argumenter fanetype i Programargumenter vindue

--server.port = 7070

og løb. Du skal se output i din konsol svarende til det output, der er vist nedenfor:

. . 2016-07-06 13: 51: 40.999 INFO 8724 --- [main] sbcetTomcatEmbeddedServletContainer: Tomcat startede på port (er): 7070 (http) 2016-07-06 13: 51: 41.006 INFO 8724 --- [main ] com.baeldung.boot.DemoApplication: Startet DemoApplication på 6.245 sekunder (JVM kører i 7.34)

9. Konklusion

I denne artikel har vi vist det grundlæggende i at udvikle et forårsprojekt i STS. Nogle af de ting, vi har vist, er udførelse af applikationer i STS, support under udviklingen af ​​Spring Data JPA og brugen af ​​kommandolinjeargumenter. Der er dog mange flere nyttige funktioner, der kan anvendes under udvikling, da STS tilbyder et rigt sæt funktioner.

Det fuld implementering af denne artikel kan findes i github-projektet - dette er et Eclipse-baseret projekt, så det skal være let at importere og køre som det er.

Java bund

Jeg har lige annonceret det nye Lær foråret kursus med fokus på det grundlæggende i Spring 5 og Spring Boot 2:

>> KONTROLLER KURSEN

$config[zx-auto] not found$config[zx-overlay] not found