Voici un résumé de mes meilleures pratiques personnelles en date de juin 2018 concernant la combinaison d'outils lors de la mise en œuvre de l'API REST dans Spring Boot.
→ En tant qu'EDI, il est utilisé dans l'environnement de développement Android officiel, et IntelliJ IDEA est susceptible de se généraliser à l'avenir, mais Ultimate Edition est nécessaire pour utiliser la fonction de support de développement Spring. Eclipse est un bon choix pour les projets qui ne sont pas aussi bons que l'achat d'une licence.
→ Gradle, qui permet une écriture flexible avec Groovy, est susceptible de devenir courant dans le futur. Cependant, Maven est suffisant s'il n'est utilisé que pour la résolution et la construction de dépendances.
→ JAX-RS est une spécification standard Java, et les bibliothèques d'implémentation qui peuvent être utilisées au niveau opérationnel ont été améliorées, il est donc préférable d'utiliser spring-boot-starter-jersey.
→ Il est facile de définir Spring AOP avec l'annotation AspectJ, et le paramètre peut être résumé dans le code. Cependant, si vous souhaitez définir l'aspect sur une instance qui n'est pas gérée par Spring, ou si vous souhaitez la définir à un moment autre que l'exécution de la méthode, vous devez utiliser AspectJ.
→ spring-boot-starter-data-jpa est pratique car des opérations de base de données simples peuvent être décrites sans SQL.
De plus, il est nécessaire d'installer le connecteur correspondant pour se connecter à chaque DB. (Par exemple, dans le cas de MySQL, installez mysql-connector-java.)
→ Il est préférable d'utiliser Hikari CP, qui a d'excellentes performances et est recommandé par Spring Boot.
→ Lors de l'utilisation de transactions pour une seule ressource cible de transaction (DB, MQ, etc.), la fonction de gestion des transactions de Spring Framework est suffisante. Selon la référence Spring, si vous souhaitez utiliser des transactions sur plusieurs ressources, vous devez soit combiner Spring avec la fonction JTA du serveur d'applications, soit utiliser une bibliothèque de transactions telle que Atomikos.
→ AutoValue est strictement une bibliothèque pour créer une classe de valeur immuable, mais Lombok peut être utilisé en ajoutant simplement une méthode d'accesseur à une classe générale, et il peut être utilisé de plusieurs façons. Cependant, si vous souhaitez étendre la fonction de génération de code, il est préférable d'implémenter l'extension d'AutoValue. (Lombok prend en charge Extension Method à titre d'essai, mais on ne sait pas si elle sera incluse dans la version officielle.)
Vous pouvez facilement lire le fichier de configuration en utilisant spring-boot-configuration-processor. Il existe trois façons de lire le fichier de configuration.
@ Value
pour définir la variable membre sur la valeur correspondant à la clé dans le fichier de configuration.@ ConfigurationProperties
pour définir le contenu du fichier de configuration du bean→ Les paramètres ayant souvent une structure hiérarchique, il est facile d'utiliser @ ConfigurationProperties
.
→ SLF4J + Logback est susceptible de devenir le courant dominant à l'avenir. Même si vous utilisez un autre système de journalisation, vous pouvez l'agréger dans SLF4J par la méthode introduite dans Bridging legacy APIs.
S'il n'y a pas de problème, il est préférable d'utiliser spring-boot-test. AssertJ (assertion), Hamcrest (opération de correspondance), [Mockito](http: / La bibliothèque requise pour les tests, telle que /mockito.org/) (mock), est terminée.
Recommended Posts