Un guide du printemps dans Eclipse STS

Haut Java

Je viens d'annoncer le nouveau cours Learn Spring , axé sur les principes de base de Spring 5 et Spring Boot 2:

>> VOIR LE COURS

1. Vue d'ensemble

Cet article illustre certaines des fonctionnalités utiles de l'EDI Eclipse Spring Tool Suite (STS), qui sont utiles lors du développement d'applications Spring.

Tout d'abord, nous montrons les avantages de l'utilisation de STS par rapport à la manière traditionnelle de créer des applications avec Eclipse.

Ensuite, nous nous concentrons sur la façon de démarrer une application, comment l'exécuter et comment ajouter des dépendances supplémentaires. Enfin, nous concluons en ajoutant des arguments d'application.

2. Caractéristiques principales de STS

STS est un environnement de développement basé sur Eclipse qui est personnalisé pour le développement d'applications Spring.

Il fournit un environnement prêt à l'emploi pour implémenter, déboguer, exécuter et déployer vos applications. Il inclut également l'intégration pour Pivotal tc Server, Pivotal Cloud Foundry, Git, Maven et AspectJ. STS est construit en complément des dernières versions d'Eclipse.

2.1. Configuration du projet

STS comprend presque toutes les structures de projet Java les plus courantes. Il analyse les fichiers de configuration, puis affiche des informations détaillées sur les beans définis, les dépendances, les espaces de noms utilisés et en plus extrait des aperçus de certains stéréotypes.

2.2. Présentation des fonctionnalités STS

Eclipse STS valide votre projet et fournit des correctifs rapides pour vos applications. Par exemple, lorsque vous travaillez avec Spring Data JPA, l'EDI peut être utilisé pour valider les noms de méthode de requête (plus d'informations à ce sujet dans la section 6).

STS fournit également une vue graphique de toutes les méthodes bean et de leurs relations mutuelles. Vous voudrez peut-être examiner de plus près les éditeurs graphiques fournis avec STS en examinant les vues disponibles sous la fenêtre des menus , show view et ensuite Spring respectivement.

STS offre également d'autres fonctionnalités utiles supplémentaires qui ne se limitent pas aux applications Spring. Il est recommandé au lecteur de consulter la liste complète des fonctionnalités disponibles ici.

3. Création d'une application Spring

Commençons par amorcer une application simple. Sans STS, une application Spring est généralement créée à l'aide du site Web Spring Initializer ou de la CLI Spring Boot. Cela peut être simplifié en cliquant sur Créer un projet Spring Starter à partir de votre tableau de bord dans STS.

Dans l' écran New Spring Starter Project, utilisez les valeurs par défaut ou effectuez vos propres ajustements, puis passez à l'écran suivant. Sélectionnez Web et cliquez sur Terminer. Votre pom.xml devrait maintenant ressembler à ceci:

 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  

Votre version de Spring Boot peut être différente, mais la dernière version peut toujours être trouvée ici.

4. Exécution de l'application

L'application susmentionnée peut être démarrée en cliquant avec le bouton droit sur le projet et en sélectionnant Exécuter en tant qu'application Spring Boot . Sans STS, vous exécuterez probablement l'application à partir de la ligne de commande avec la commande suivante:

$ mvn spring-boot:run

Par défaut, les applications Spring sont démarrées avec Tomcat fonctionnant sur le port 8080. À ce stade, l'application démarre sur le port 8080 et ne fait essentiellement rien d'autre car nous n'avons pas encore implémenté de code. La section 8 vous montre comment changer le port par défaut.

5. Journalisation et console ANSI

Lorsque vous exécutez le projet à partir de l'EDI à l'aide de la commande run, vous remarquerez que la console génère de belles instructions de journal codées par couleur. Si vous souhaitez le désactiver, accédez à exécuter les configurations … et désactivez la case à cocher Activer la sortie de la console ANSI dans l' onglet Spring Boot . Vous pouvez également le désactiver en définissant une valeur de propriétés dans le fichier application.properties .

spring.output.ansi.enabled=NEVER

Vous trouverez plus d'informations sur la configuration de vos journaux d'application ici.

6. Vérification du nom de la requête JPA

Parfois, la mise en œuvre d'une couche d'accès aux données peut être une activité fastidieuse. Il faudra peut-être écrire beaucoup de code standard pour réaliser des requêtes simples et effectuer une pagination. Spring Data JPA (JPA) vise à faciliter considérablement une telle implémentation de couches d'accès aux données. Cette section illustre certains des avantages de l'utilisation de JPA en conjonction avec STS.

Pour commencer, ajoutez la dépendance suivante pour JPA au pom.xml précédemment généré :

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

Vous avez peut-être remarqué que la version n'a pas été spécifiée dans la déclaration ci-dessus. Cela est dû au fait que les dépendances sont gérées à partir du parent pom.xml :

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

Pour que JPA fonctionne, il est nécessaire que vous définissiez correctement vos gestionnaires d'entités et vos gestionnaires de transactions. Cependant, Spring les configure automatiquement pour vous. La seule chose qui reste au développeur est de créer les classes d'entités réelles. Ces entités sont gérées par le gestionnaire d'entités, qui à son tour est créé par le conteneur. Créons par exemple une classe d'entité Foo comme ceci:

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

Le conteneur analyse toutes les classes annotées avec @Entity à partir de la racine du package de configuration. Ensuite, nous créons un référentiel JPA pour l' entité Foo :

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

À ce stade, vous avez peut-être déjà remarqué que l'EDI marque désormais cette méthode de requête avec une exception:

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

Dans cet article, nous avons montré les bases du développement d'un projet Spring dans STS. Certaines des choses que nous avons montrées sont l'exécution d'applications dans STS, la prise en charge lors du développement de Spring Data JPA et l'utilisation d'arguments de ligne de commande. Cependant, il existe de nombreuses autres fonctionnalités utiles qui peuvent être utilisées pendant le développement, car STS offre un riche ensemble de fonctionnalités.

L' implémentation complète de cet article se trouve dans le projet github - il s'agit d'un projet basé sur Eclipse, il devrait donc être facile à importer et à exécuter tel quel.

Fond Java

Je viens d'annoncer le nouveau cours Learn Spring , axé sur les principes de base de Spring 5 et Spring Boot 2:

>> VOIR LE COURS