Una guida alla primavera in Eclipse STS

Java Top

Ho appena annunciato il nuovo corso Learn Spring , incentrato sui fondamenti di Spring 5 e Spring Boot 2:

>> SCOPRI IL CORSO

1. Panoramica

Questo articolo illustra alcune delle utili funzionalità dell'IDE di Eclipse Spring Tool Suite (STS), utili durante lo sviluppo di applicazioni Spring.

Innanzitutto mostriamo i vantaggi dell'utilizzo di STS rispetto al modo tradizionale di creare applicazioni con Eclipse.

Successivamente, ci concentreremo su come eseguire il bootstrap di un'applicazione, come eseguirla e come aggiungere ulteriori dipendenze. Infine concludiamo aggiungendo argomenti dell'applicazione.

2. Caratteristiche principali di STS

STS è un ambiente di sviluppo basato su Eclipse personalizzato per lo sviluppo di applicazioni Spring.

Fornisce un ambiente pronto all'uso per implementare, eseguire il debug, eseguire e distribuire le applicazioni. Include anche l'integrazione per Pivotal tc Server, Pivotal Cloud Foundry, Git, Maven e AspectJ. STS è stato creato come aggiunta alle ultime versioni di Eclipse.

2.1. Configurazione del progetto

STS comprende quasi tutte le strutture di progetti Java più comuni. Analizza i file di configurazione e quindi visualizza informazioni dettagliate sui bean definiti, le dipendenze, gli spazi dei nomi utilizzati e inoltre estrae le panoramiche per alcuni stereotipi.

2.2. Panoramica delle funzionalità di STS

Eclipse STS convalida il tuo progetto e fornisce soluzioni rapide per le tue applicazioni. Ad esempio, quando si lavora con Spring Data JPA, l'IDE può essere utilizzato per convalidare i nomi dei metodi di query (ulteriori informazioni su questo nella sezione 6).

STS fornisce anche una visualizzazione grafica di tutti i metodi bean e delle loro relazioni reciproche. Potresti voler dare un'occhiata più da vicino agli editor grafici forniti con STS esaminando le visualizzazioni che sono disponibili rispettivamente nella finestra dei menu , mostra visualizzazione e poi Spring .

STS offre anche altre utili funzionalità che non sono limitate alle sole applicazioni Spring. Si consiglia al lettore di dare un'occhiata all'elenco completo delle funzionalità che si possono trovare qui.

3. Creazione di un'applicazione primaverile

Cominciamo avviando una semplice applicazione. Senza STS, un'applicazione Spring viene solitamente creata utilizzando il sito Web Spring Initializer o la CLI Spring Boot. Questo può essere semplificato facendo clic su Crea progetto Spring Starter dalla dashboard in STS.

Nella schermata New Spring Starter Project usa le impostazioni predefinite o apporta le tue regolazioni e poi vai alla schermata successiva. Seleziona Web e fai clic su Fine. Il tuo pom.xml dovrebbe ora essere simile a questo:

 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  

La tua versione di Spring Boot potrebbe essere diversa, ma l'ultima versione può sempre essere trovata qui.

4. Esecuzione dell'applicazione

L'applicazione di cui sopra può essere avviata facendo clic con il pulsante destro del mouse sul progetto e selezionando Esegui come app Spring Boot . Senza STS, molto probabilmente eseguirai l'applicazione dalla riga di comando con il seguente comando:

$ mvn spring-boot:run

Per impostazione predefinita, le applicazioni Spring vengono avviate con Tomcat in esecuzione sulla porta 8080. A questo punto, l'applicazione si avvia sulla porta 8080 e sostanzialmente non fa nient'altro poiché non abbiamo ancora implementato alcun codice. La sezione 8 mostra come modificare la porta predefinita.

5. Registrazione e console ANSI

Quando esegui il progetto dall'IDE usando il comando run, noterai che la console emette alcune belle istruzioni di log codificate a colori. Nel caso in cui desideri disattivarlo, vai su Esegui configurazioni ... e disabilita la casella di controllo Abilita output console ANSI nella scheda Spring Boot . In alternativa è anche possibile disabilitarlo impostando un valore di proprietà nel file application.properties .

spring.output.ansi.enabled=NEVER

Ulteriori informazioni sulla configurazione dei log dell'applicazione possono essere trovate qui.

6. Controlli nome query JPA

A volte l'implementazione di un livello di accesso ai dati può essere un'attività complicata. Potrebbe essere necessario scrivere un sacco di codice boilerplate per realizzare semplici query ed eseguire l'impaginazione. Spring Data JPA (JPA) mira a facilitare in modo significativo tale implementazione dei livelli di accesso ai dati. Questa sezione illustra alcuni dei vantaggi dell'utilizzo di JPA insieme a STS.

Per iniziare, aggiungi la seguente dipendenza per JPA al pom.xml generato in precedenza :

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

Avrai notato che la versione non è stata specificata nella dichiarazione di cui sopra. Ciò è dovuto al fatto che le dipendenze sono gestite dal genitore pom.xml :

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

Per far funzionare JPA, è necessario definire correttamente i gestori di entità e i gestori delle transazioni. Tuttavia, Spring li configura automaticamente per te. L'unica cosa rimasta allo sviluppatore è creare le classi di entità effettive. Queste entità sono gestite dal gestore entità, che a sua volta viene creato dal contenitore. Creiamo ad esempio una classe di entità Foo in questo modo:

@Entity public class Foo implements Serializable { @Id @GeneratedValue private Integer id; private String name; // Standard getters and setters }

Il contenitore analizza tutte le classi annotate con @Entity dalla radice del pacchetto di configurazione. Successivamente creiamo un repository JPA per l' entità Foo :

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

A questo punto potresti aver già notato che l'IDE ora contrassegna questo metodo di query con un'eccezione:

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

This is of course due to the fact that we have accidentally written an ‘s' in the method name of the JPA repository. To fix this remove the spurious ‘s' like so:

public Foo findByName(String name);

Notice that no @EnableJpaRepositories was used on the config class. This is because the container's AutoConfigration pre-registers one for the project.

7. Jar Type Search

“Jar Type Search” is a feature that was introduced in STS 3.5.0. It provides content-assisted proposals in projects for classes that are not (yet) on the classpath. STS may help you adding dependencies to your POM file in case they are not yet on the classpath.

For example, let us add a line to the Foo entity class. For this example to work properly, please ensure first that the import statement for java.util.List is already present. Now we may add Google Guava as follows:

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

The IDE will suggest several dependencies to be added to the classpath. Add the dependency from com.google.common.collect,press return and add the dependency from Guava. The Guava jar will now automatically be added to your pom.xml file like so:

 com.google.guava guava 19.0  

As of version STS 3.8.0, you get a confirmation dialog box before STS makes its changes to your pom.xml.

8. Adding Application Arguments

One of the other powerful features of Spring is the support of external configurations which can be passed to an application in several ways, e.g. as command-line arguments, specified in properties or YAML files or as system properties. In this section, we focus on adding a configuration option as application start argument using STS. This is illustrated by configuring Tomcat to start on a different port.

In order to run an application on a Tomcat port other than the default, you may use the command below, where a custom port is specified as command-line argument:

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

When using STS, you have go to the run menu. Select run configurations… from the Run Configurations dialog, select Spring Boot App from the left panel and select demo – DemoApplication (this will be different if you did not select the default project). From (x)= Arguments tab type in the Program Arguments window

--server.port=7070

and run. You should see output in your console similar to the output that is shown below:

. . 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.baeldung.boot.DemoApplication : Started DemoApplication in 6.245 seconds (JVM running for 7.34)

9. Conclusion

In questo articolo abbiamo mostrato le basi dello sviluppo di un progetto Spring in STS. Alcune delle cose che abbiamo mostrato sono l'esecuzione di applicazioni in STS, il supporto durante lo sviluppo di Spring Data JPA e l'uso di argomenti della riga di comando. Tuttavia, ci sono molte altre funzionalità utili che possono essere impiegate durante lo sviluppo poiché STS offre un ricco set di funzionalità.

L' implementazione completa di questo articolo può essere trovata nel progetto github: questo è un progetto basato su Eclipse, quindi dovrebbe essere facile da importare ed eseguire così com'è.

Fondo Java

Ho appena annunciato il nuovo corso Learn Spring , incentrato sui fondamenti di Spring 5 e Spring Boot 2:

>> SCOPRI IL CORSO