Guide du printemps dans Eclipse STS

Un guide pour le printemps dans Eclipse STS

1. Vue d'ensemble

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

Nous montrons d’abord les avantages de l’utilisation de STS par rapport à la méthode traditionnelle de création d’applications avec Eclipse.

Nous nous intéresserons ensuite à la procédure d’amorçage d’une application, à son exécution et à l’ajout de 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 une intégration pour Pivotal tc Server, Pivotal Cloud Foundry, Git, Maven et AspectJ. STS s’ajoute aux 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 lesbeans qui sont définis, les dépendances, les espaces de noms utilisés et en plus extrait des aperçus de certains stéréotypes.

spring-bean-snapshot

2.2. Présentation des fonctionnalités STS

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

STS fournit également une vue graphique de toutes les méthodes de 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 les menuswindow,show view et ensuiteSpring respectivement.

STS offre également d’autres fonctionnalités utiles qui ne se limitent pas aux applications Spring. Il est recommandé au lecteur de consulter la liste complète des fonctionnalités qui peuvent être trouvéeshere.

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 en utilisant le site WebSpring Initializer ou lesSpring Boot CLI. Cela peut être simplifié en cliquant surCreate Spring Starter Project depuis votre tableau de bord dans STS.

Dans l'écranNew Spring Starter Project, utilisez les valeurs par défaut ou effectuez vos propres ajustements, puis passez à l'écran suivant. SélectionnezWeb et cliquez sur Terminer. Vospom.xml devraient 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éehere.

4. Lancer l'application

L'application susmentionnée peut être lancée en cliquant avec le bouton droit sur le projet et en sélectionnant exécuter en tant queSpring Boot App. 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 sur le port 8080. À ce stade, l'application démarre sur le port 8080 et ne fait fondamentalement rien d'autre, car nous n'avons encore implémenté aucun 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 en utilisant la commande run, vous remarquerez que la console génère de belles instructions de journalcolor-coded. Si vous souhaitez le désactiver, accédez àrun configurations… et désactivez la case à cocherEnable ANSI console output dans l'ongletSpring Boot. Vous pouvez également le désactiver en définissant une valeur de propriétés dans le fichierapplication.properties.

spring.output.ansi.enabled=NEVER

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

6. Vérifications 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é lourde. Il faudra peut-être écrire beaucoup de code passe-partout pour réaliser des requêtes simples et effectuer une pagination. Spring Data JPA (JPA) vise à faciliter de manière significative une telle implémentation de couches d'accès aux données. Cette section illustre certains des avantages de l’utilisation de JPA avec STS.

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


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


    com.h2database
    h2

Vous avez peut-être remarqué queversion n'a pas été spécifié dans la déclaration ci-dessus. Cela est dû au fait que les dépendances sont gérées depuis le parentpom.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 responsables d’entités et vos gestionnaires de transactions. Cependant, Spring les configure automatiquement pour vous. Le développeur n'a plus qu'à créer les classes d'entités réelles. Ces entités sont gérées par le gestionnaire d'entités, qui 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 signale maintenant cette méthode de requête avec une exception:

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

Ceci est bien sûr dû au fait que nous avons accidentellement écrit un "s" dans le nom de la méthode du référentiel JPA. Pour résoudre ce problème, supprimez le «s» parasite comme ceci:

public Foo findByName(String name);

Notez qu'aucun@EnableJpaRepositories n'a été utilisé sur la classe de configuration. En effet, le conteneurAutoConfigration en pré-enregistre un pour le projet.

«Jar Type Search» est une fonctionnalité qui a été introduite dansSTS 3.5.0. Il fournit des propositions assistées par le contenu dans des projets pour des classes qui ne sont pas (encore) sur le classpath. STS peut vous aider à ajouter des dépendances à votre fichier POM si elles ne sont pas encore sur le chemin de classe.

Par exemple, ajoutons une ligne à la classe d'entitéFoo. Pour que cet exemple fonctionne correctement, assurez-vous d'abord que l'instruction d'importation pourjava.util.List est déjà présente. Nous pouvons maintenant ajouter Google Guava comme suit:

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

L'EDI suggérera plusieurs dépendances à ajouter au classpath. Ajoutez la dépendance decom.google.common.collect, ** appuyez sur retour et ajoutez la dépendance deGuava. Le jar Guava sera désormais automatiquement ajouté à votre fichierpom.xml comme ceci:


    com.google.guava
    guava
    19.0

À partir de la versionSTS 3.8.0, vous obtenez une boîte de dialogue de confirmation avant que STS ne modifie vospom.xml.

8. Ajout d'arguments d'application

Une des autres fonctionnalités puissantes de Spring est la prise en charge de configurations externes pouvant être transmises à une application de plusieurs manières, par exemple. en tant qu'arguments de ligne de commande, spécifiés dans des propriétés ou des fichiers YAML ou en tant que propriétés système. Dans cette section, nous nous concentrons sur l'ajout d'une option de configuration en tant qu'argument de démarrage d'application à l'aide de STS. Ceci est illustré en configurant Tomcat pour qu'il démarre sur un autre port.

Pour exécuter une application sur un port Tomcat autre que celui par défaut, vous pouvez utiliser la commande ci-dessous, où un port personnalisé est spécifié en tant qu'argument de ligne de commande:

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

Lorsque vous utilisez STS, vous devez aller dans le menurun. Sélectionnezrun configurations… dans la boîte de dialogue Exécuter les configurations, sélectionnezSpring Boot App dans le panneau de gauche et sélectionnezdemo – DemoApplication (ce sera différent si vous n'avez pas sélectionné le projet par défaut). À partir de l'onglet(x)= Arguments, tapez dans la fenêtreProgram Arguments

--server.port=7070

etrun. La sortie de votre console devrait ressembler à la sortie ci-dessous:

.
.
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. Conclusion

Dans cet article, nous avons montré les bases du développement d’un projet Spring dans STS. Nous avons notamment montré l’exécution d’applications dans STS, la prise en charge lors du développement de JPA Spring Data et l’utilisation d’arguments en ligne de commande. Cependant, de nombreuses fonctionnalités plus utiles peuvent être utilisées au cours du développement, car STS offre un riche ensemble de fonctionnalités.

Lesfull implementation de cet article se trouvent dans lesgithub project - il s'agit d'un projet basé sur Eclipse, il devrait donc être facile à importer et à exécuter tel quel.