Ein Leitfaden für Spring in Eclipse STS

Ein Leitfaden für den Frühling in Eclipse STS

1. Überblick

Dieser Artikel zeigt einige nützliche Funktionen der IDE vonEclipse Spring Tool Suite (STS), die bei der Entwicklung vonSpring applications hilfreich sind.

Zunächst zeigen wir die Vorteile der Verwendung von STS im Vergleich zur herkömmlichen Methode zum Erstellen von Anwendungen mit Eclipse.

Danach konzentrieren wir uns darauf, wie eine Anwendung gebootet, ausgeführt und zusätzliche Abhängigkeiten hinzugefügt werden. Abschließend fügen wir Anwendungsargumente hinzu.

2. STS Hauptmerkmale

STS ist eine Eclipse-basierte Entwicklungsumgebung, die für die Entwicklung von Spring-Anwendungen angepasst ist.

Es bietet eine sofort einsatzbereite Umgebung zum Implementieren, Debuggen, Ausführen und Bereitstellen Ihrer Anwendungen. Es beinhaltet auch die Integration für Pivotal tc Server, Pivotal Cloud Foundry, Git, Maven und AspectJ. STS wurde als Ergänzung zu den neuesten Eclipse-Versionen entwickelt.

2.1. Projektkonfiguration

STS versteht fast alle gängigen Java-Projektstrukturen. Es analysiert Konfigurationsdateien und zeigt dann detaillierte Informationen zu definiertenbeans, Abhängigkeiten, verwendeten Namespaces an und extrahiert zusätzlich Übersichten für bestimmte Stereotypen.

spring-bean-snapshot

2.2. STS-Funktionsübersicht

Eclipse STS validiert Ihr Projekt und bietet schnelle Lösungen für Ihre Anwendungen. Wenn Sie beispielsweise mit Spring Data JPA arbeiten, kann die IDE verwendet werden, um Namen von Abfragemethoden zu validieren (mehr dazu in Abschnitt 6).

STS bietet auch eine grafische Ansicht aller Bean-Methoden und ihrer gegenseitigen Beziehungen. Sie können sich die mit STS gelieferten grafischen Editoren genauer ansehen, indem Sie sich die Ansichten ansehen, die unter den Menüswindow,show view und dannSpring verfügbar sind.

STS bietet außerdem weitere nützliche Funktionen, die nicht nur auf Spring-Anwendungen beschränkt sind. Dem Leser wird empfohlen, sich die vollständige Liste der Funktionen anzusehen, diehere enthalten.

3. Erstellung einer Frühlingsanwendung

Beginnen wir mit dem Bootstrapping einer einfachen Anwendung. Ohne STS wird eine Spring-Anwendung normalerweise mithilfe der WebsiteSpring Initializer oder der WebsiteSpring Boot CLI erstellt. Dies kann vereinfacht werden, indem Sie in STS in Ihrem Dashboard aufCreate Spring Starter Project klicken.

Verwenden Sie im BildschirmNew Spring Starter Projectentweder die Standardeinstellungen oder nehmen Sie Ihre eigenen Anpassungen vor und fahren Sie dann mit dem nächsten Bildschirm fort. Wählen SieWeb und klicken Sie auf Fertig stellen. Ihrepom.xml sollten jetzt ungefähr so ​​aussehen:


    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
    

Ihre Version von Spring Boot kann unterschiedlich sein, aber die neueste Version ist möglicherweise immerhere.

4. Ausführen der Anwendung

Die oben genannte Anwendung kann gestartet werden, indem Sie mit der rechten Maustaste auf das Projekt klicken und Ausführen alsSpring Boot App auswählen. Ohne STS führen Sie die Anwendung höchstwahrscheinlich über die Befehlszeile mit dem folgenden Befehl aus:

$ mvn spring-boot:run

Standardmäßig werden Spring-Anwendungen mit Tomcat auf Port 8080 gestartet. Zu diesem Zeitpunkt startet die Anwendung auf Port 8080 und führt im Grunde nichts anderes aus, da wir noch keinen Code implementiert haben. In Abschnitt 8 erfahren Sie, wie Sie den Standardport ändern.

5. Protokollierung und ANSI-Konsole

Wenn Sie das Projekt über die IDE mit dem Befehl run ausführen, werden Sie feststellen, dass die Konsole einige nette Protokollanweisungen voncolor-codedausgibt. Wenn Sie es deaktivieren möchten, gehen Sie zurun configurations… und deaktivieren Sie das KontrollkästchenEnable ANSI console output auf der RegisterkarteSpring Boot. Alternativ können Sie es auch deaktivieren, indem Sie einen Eigenschaftswert in der Dateiapplication.propertiesfestlegen.

spring.output.ansi.enabled=NEVER

Weitere Informationen zur Konfiguration Ihrer Anwendungsprotokolle finden Sie unterhere.

6. JPA-Abfragenamenprüfungen

Manchmal kann das Implementieren einer Datenzugriffsschicht eine umständliche Aktivität sein. Möglicherweise muss eine Menge Code für Boilerplates geschrieben werden, um einfache Abfragen zu realisieren und eine Paginierung durchzuführen. Spring Data JPA (JPA) zielt darauf ab, eine solche Implementierung von Datenzugriffsschichten erheblich zu erleichtern. In diesem Abschnitt werden einige der Vorteile der Verwendung von JPA in Verbindung mit STS erläutert.

Fügen Sie zunächst die folgenden generiertenpom.xml für JPA hinzu:


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


    com.h2database
    h2

Möglicherweise haben Sie bemerkt, dassversion in der obigen Deklaration nicht angegeben wurde. Dies liegt an der Tatsache, dass Abhängigkeiten von den übergeordnetenpom.xml verwaltet werden:


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

Damit JPA funktioniert, müssen Sie Ihre Entitäts- und Transaktionsmanager ordnungsgemäß definieren. Spring konfiguriert diese jedoch automatisch für Sie. Der Entwickler muss nur noch die eigentlichen Entitätsklassen erstellen. Diese Entitäten werden vom Entitätsmanager verwaltet, der wiederum vom Container erstellt wird. Erstellen wir zum Beispiel eine EntitätsklasseFoowie folgt:

@Entity
public class Foo implements Serializable {
    @Id
    @GeneratedValue
    private Integer id;
    private String name;

    // Standard getters and setters
}

Der Container durchsucht alle mit@Entity versehenen Klassen aus dem Stammverzeichnis des Konfigurationspakets. Als Nächstes erstellen wir ein JPA-Repository für die EntitätFoo:

public interface FooRepository extends JpaRepository {
    public Foo findByNames(String name);
}

Zu diesem Zeitpunkt haben Sie möglicherweise bereits bemerkt, dass die IDE diese Abfragemethode jetzt mit einer Ausnahme markiert:

Invalid derived query! No property names found for type Foo!

Dies liegt natürlich daran, dass wir versehentlich ein 's' in den Methodennamen des JPA-Repository geschrieben haben. Um dies zu beheben, entfernen Sie die falschen "s" wie folgt:

public Foo findByName(String name);

Beachten Sie, dass in der Konfigurationsklasse kein@EnableJpaRepositories verwendet wurde. Dies liegt daran, dassAutoConfigrationdes Containers einen für das Projekt vorregistriert.

„Jar Type Search“ ist ein Feature, das inSTS 3.5.0 eingeführt wurde. Es bietet inhaltsgestützte Vorschläge in Projekten für Klassen, die sich (noch) nicht im Klassenpfad befinden. STS kann Ihnen dabei helfen, Abhängigkeiten zu Ihrer POM-Datei hinzuzufügen, falls diese noch nicht im Klassenpfad enthalten sind.

Fügen wir beispielsweise der EntitätsklasseFooeine Zeile hinzu. Damit dieses Beispiel ordnungsgemäß funktioniert, stellen Sie zunächst sicher, dass die Importanweisung fürjava.util.List bereits vorhanden ist. Jetzt können wir Google Guava wie folgt hinzufügen:

private List strings = Lists // ctrl + SPACE to get code completion

Die IDE schlägt verschiedene Abhängigkeiten vor, die dem Klassenpfad hinzugefügt werden sollen. Fügen Sie die Abhängigkeit voncom.google.common.collect, ** hinzu, drücken Sie die Eingabetaste und fügen Sie die Abhängigkeit vonGuava hinzu. Das Guavenglas wird nun automatisch wie folgt zu Ihrerpom.xml-Datei hinzugefügt:


    com.google.guava
    guava
    19.0

Ab VersionSTS 3.8.0 erhalten Sie ein Bestätigungsdialogfeld, bevor STS Änderungen an Ihrenpom.xml. vornimmt

8. Anwendungsargumente hinzufügen

Eine der anderen leistungsstarken Funktionen von Spring ist die Unterstützung externer Konfigurationen, die auf verschiedene Arten an eine Anwendung übergeben werden können, z. als Befehlszeilenargumente, angegeben in Eigenschaften oder YAML-Dateien oder als Systemeigenschaften. In diesem Abschnitt konzentrieren wir uns auf das Hinzufügen einer Konfigurationsoption als Anwendungsstartargument mit STS. Dies wird veranschaulicht, indem Tomcat so konfiguriert wird, dass es an einem anderen Port gestartet wird.

Um eine Anwendung auf einem anderen als dem Standard-Tomcat-Port auszuführen, können Sie den folgenden Befehl verwenden, wobei ein benutzerdefinierter Port als Befehlszeilenargument angegeben wird:

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

Wenn Sie STS verwenden, müssen Sie zum Menürungehen. Wählen Sierun configurations… aus dem Dialogfeld Konfigurationen ausführen, wählen SieSpring Boot App im linken Bereich aus und wählen Siedemo – DemoApplication aus (dies ist anders, wenn Sie das Standardprojekt nicht ausgewählt haben). Geben Sie auf der Registerkarte(x)= Arguments im FensterProgram Arguments ein

--server.port=7070

undrun. Die Ausgabe in Ihrer Konsole sollte der folgenden Ausgabe ähneln:

.
.
2016-07-06 13:51:40.999  INFO 8724 --- [           main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 7070 (http)
2016-07-06 13:51:41.006  INFO 8724 --- [           main] com.example.boot.DemoApplication        : Started DemoApplication in 6.245 seconds (JVM running for 7.34)

9. Fazit

In diesem Artikel haben wir die Grundlagen der Entwicklung eines Spring-Projekts in STS gezeigt. Einige der Dinge, die wir gezeigt haben, sind die Ausführung von Anwendungen in STS, die Unterstützung bei der Entwicklung von Spring Data JPA und die Verwendung von Befehlszeilenargumenten. Es gibt jedoch noch viele weitere nützliche Funktionen, die während der Entwicklung verwendet werden können, da STS eine Vielzahl von Funktionen bietet.

Diefull implementation dieses Artikels befinden sich in dengithub project - dies ist ein Eclipse-basiertes Projekt, daher sollte es einfach zu importieren und auszuführen sein, wie es ist.