Een gids voor de lente in Eclipse STS

Java Top

Ik heb zojuist het nieuwe aangekondigd Leer de lente natuurlijk, gericht op de basisprincipes van Spring 5 en Spring Boot 2:

>> BEKIJK DE CURSUS

1. Overzicht

Dit artikel illustreert enkele van de handige functies van de Eclipse Spring Tool Suite (STS) IDE, die handig zijn bij het ontwikkelen van Spring-applicaties.

Eerst laten we de voordelen zien van het gebruik van STS in vergelijking met de traditionele manier om applicaties te bouwen met Eclipse.

Daarna richten we ons op het opstarten van een applicatie, het uitvoeren ervan en het toevoegen van extra afhankelijkheden. Ten slotte sluiten we af met het toevoegen van toepassingsargumenten.

2. STS Belangrijkste kenmerken

STS is een op Eclipse gebaseerde ontwikkelomgeving die is aangepast voor de ontwikkeling van Spring-applicaties.

Het biedt een gebruiksklare omgeving om uw applicaties te implementeren, te debuggen, uit te voeren en te implementeren. Het bevat ook integratie voor Pivotal tc Server, Pivotal Cloud Foundry, Git, Maven en AspectJ. STS is gebouwd als aanvulling op de nieuwste Eclipse-releases.

2.1. Projectconfiguratie

STS begrijpt bijna alle meest voorkomende Java-projectstructuren. Het parseert configuratiebestanden en geeft vervolgens gedetailleerde informatie weer over gedefinieerde bonen, afhankelijkheden, gebruikte naamruimten en extraheert bovendien overzichten voor bepaalde stereotypen.

2.2. STS-functiesoverzicht

Eclipse STS valideert uw project en biedt snelle oplossingen voor uw toepassingen. Als u bijvoorbeeld met Spring Data JPA werkt, kan de IDE worden gebruikt om namen van zoekmethoden te valideren (meer hierover in sectie 6).

STS biedt ook een grafische weergave van alle bean-methoden en hun onderlinge relaties. Misschien wilt u de grafische editors die bij STS worden geleverd nader bekijken door de weergaven te bekijken die beschikbaar zijn onder de menu's venster, toon weergave en dan Voorjaar respectievelijk.

STS biedt ook andere extra handige functies die niet beperkt zijn tot alleen Spring-toepassingen. De lezer wordt aangeraden om de volledige lijst met functies te bekijken die hier te vinden zijn.

3. Creëren van een veerapplicatie

Laten we beginnen met het opstarten van een eenvoudige applicatie. Zonder STS wordt meestal een Spring-applicatie gemaakt met behulp van de Spring Initializer-website of de Spring Boot CLI. Dit kan worden vereenvoudigd door op te klikken Creëer Spring Starter Project vanaf uw dashboard in STS.

In de Nieuw Spring Starter Project scherm gebruik ofwel de standaardinstellingen of maak uw eigen aanpassingen en ga dan naar het volgende scherm. Selecteer Web en klik op voltooien. Jouw pom.xml zou er nu ongeveer zo uit moeten zien:

 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 

Uw versie van Spring Boot kan anders zijn, maar de laatste versie is hier altijd te vinden.

4. Het uitvoeren van de applicatie

De bovengenoemde applicatie kan worden gestart door met de rechtermuisknop op het project te klikken en uitvoeren als te selecteren Spring Boot-app. Zonder STS voert u de applicatie hoogstwaarschijnlijk uit vanaf de opdrachtregel met de volgende opdracht:

$ mvn spring-boot: run

Standaard worden Spring-applicaties gestart met Tomcat die op poort 8080 draait. Op dit punt start de applicatie op poort 8080 en doet eigenlijk niets anders omdat we nog geen code hebben geïmplementeerd. Sectie 8 laat zien hoe u de standaardpoort kunt wijzigen.

5. Logboekregistratie en ANSI-console

Wanneer u het project vanuit de IDE uitvoert met de opdracht run, zult u opmerken dat de console een aantal mooie kleurgecodeerde logboekinstructies uitvoert. Ga naar als u het wilt uitschakelen voer configuraties uit… En schakel het selectievakje uit Schakel ANSI-console-uitvoer in op de Spring Boot tabblad. Als alternatief kunt u het ook uitschakelen door een waarde voor eigenschappen in te stellen in het application.properties het dossier.

spring.output.ansi.enabled = NOOIT

Meer informatie over de configuratie van uw toepassingslogboeken vindt u hier.

6. JPA-zoekopdrachtnaamcontroles

Soms kan het implementeren van een gegevenstoegangslaag een omslachtige activiteit zijn. Er moet mogelijk veel standaardcode worden geschreven om eenvoudige zoekopdrachten te realiseren en paginering uit te voeren. Spring Data JPA (JPA) heeft tot doel een dergelijke implementatie van gegevenstoegangslagen aanzienlijk te vergemakkelijken. Dit gedeelte illustreert enkele voordelen van het gebruik van JPA in combinatie met STS.

Voeg om te beginnen de volgende afhankelijkheid voor JPA toe aan het eerder gegenereerde pom.xml:

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

Dat is je misschien opgevallen versie is niet gespecificeerd in de bovenstaande verklaring. Dit komt door het feit dat afhankelijkheden worden beheerd vanuit de ouder pom.xml:

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

Om PPV te laten werken, is het vereist dat u uw entiteitsmanagers en transactiebeheerders goed definieert. Spring configureert deze echter automatisch voor u. Het enige dat de ontwikkelaar overblijft, is het maken van de daadwerkelijke entiteitsklassen. Deze entiteiten worden beheerd door de entiteitsbeheerder, die op zijn beurt wordt aangemaakt door de container. Laten we bijvoorbeeld een entiteitsklasse maken Foo zo:

@Entity public class Foo implementeert Serializable {@Id @GeneratedValue private Integer id; private String naam; // Standaard getters en setters}

De container scant alle klassen die zijn geannoteerd met @Entiteit vanaf de root van het configuratiepakket. Vervolgens maken we een JPA-repository voor het Foo entiteit:

openbare interface FooRepository breidt JpaRepository uit {openbare Foo findByNames (String naam); }

Op dit punt is het je misschien al opgevallen dat de IDE deze query-methode nu markeert met een uitzondering:

Ongeldige afgeleide zoekopdracht! Geen eigenschapnamen gevonden voor type Foo! 

Dit komt natuurlijk door het feit dat we per ongeluk een ‘s 'hebben geschreven in de naam van de methode van de JPA-repository. Om dit op te lossen, verwijdert u de valse ‘s 'als volgt:

openbare Foo findByName (String naam);

Merk op dat nee @EnableJpaRepositories werd gebruikt in de config-klasse. Dit komt doordat de container AutoConfigration registreert er vooraf een voor het project.

7. Jar Type Zoeken

"Jar Type Search" is een functie die werd geïntroduceerd in STS 3.5.0. Het biedt inhoudelijke voorstellen in projecten voor klassen die (nog) niet op het klassenpad staan. STS kan u helpen bij het toevoegen van afhankelijkheden aan uw POM-bestand voor het geval ze nog niet op het klassenpad staan.

Laten we bijvoorbeeld een regel toevoegen aan de Foo entiteitsklasse. Om dit voorbeeld goed te laten werken, dient u er eerst voor te zorgen dat de importverklaring voor java.util.List is al aanwezig. Nu kunnen we Google Guava als volgt toevoegen:

private List strings = Lists // ctrl + SPACE om code aan te vullen

De IDE zal verschillende afhankelijkheden voorstellen die aan het klassenpad moeten worden toegevoegd. Voeg de afhankelijkheid toe van com.google.common.collect,druk op Return en voeg de afhankelijkheid van toe Guave. De Guava-pot wordt nu automatisch toegevoegd aan je pom.xml bestand als volgt:

 com.google.guava guave 19.0 

Vanaf versie STS 3.8.0 krijgt u een bevestigingsdialoogvenster voordat STS zijn wijzigingen aanbrengt in uw pom.xml.

8. Toepassingsargumenten toevoegen

Een van de andere krachtige functies van Spring is de ondersteuning van externe configuraties die op verschillende manieren aan een applicatie kunnen worden doorgegeven, bijv. als opdrachtregelargumenten, gespecificeerd in eigenschappen of YAML-bestanden of als systeemeigenschappen. In deze sectie richten we ons op het toevoegen van een configuratie-optie als argument voor het starten van een toepassing met behulp van STS. Dit wordt geïllustreerd door Tomcat te configureren om op een andere poort te starten.

Om een ​​applicatie op een andere Tomcat-poort dan de standaardpoort uit te voeren, kunt u de onderstaande opdracht gebruiken, waarbij een aangepaste poort is opgegeven als opdrachtregelargument:

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

Als u STS gebruikt, moet u naar het rennen menu. Selecteer voer configuraties uit… In het dialoogvenster Configuraties uitvoeren selecteert u Spring Boot-app in het linkerpaneel en selecteer demo - DemoApplication (dit zal anders zijn als u niet het standaardproject heeft geselecteerd). Van (x) = argumenten tab type in het Programma-argumenten venster

--server.port = 7070

en rennen. Je zou output in je console moeten zien die lijkt op de output die hieronder wordt getoond:

. . 2016-07-06 13:51: 40.999 INFO 8724 --- [main] sbcetTomcatEmbeddedServletContainer: Tomcat gestart op poort (en): 7070 (http) 2016-07-06 13:51: 41.006 INFO 8724 --- [main ] com.baeldung.boot.DemoApplication: DemoApplication gestart in 6.245 seconden (JVM draait voor 7.34)

9. Conclusie

In dit artikel hebben we de basis laten zien van het ontwikkelen van een Spring-project in STS. Enkele van de dingen die we hebben laten zien, zijn het uitvoeren van applicaties in STS, ondersteuning tijdens de ontwikkeling van Spring Data JPA en het gebruik van opdrachtregelargumenten. Er zijn echter nog veel meer handige functies die tijdens de ontwikkeling kunnen worden gebruikt, aangezien STS een uitgebreide reeks functies biedt.

De volledige implementatie van dit artikel is te vinden in het github-project - dit is een op Eclipse gebaseerd project, dus het moet gemakkelijk te importeren en uit te voeren zijn zoals het is.

Java onderkant

Ik heb zojuist het nieuwe aangekondigd Leer de lente natuurlijk, gericht op de basisprincipes van Spring 5 en Spring Boot 2:

>> BEKIJK DE CURSUS