J'essaie de développer un exemple d'application basée sur Spring Boot dans IntellIJ. J'ai donc utilisé l'approche Spring Initialzr et effectué des sélections par défaut lors de la configuration. Le pom.xml avec lequel je me suis retrouvé a la dépendance suivante:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>
Mais le tutoriel que je suis suit:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency>
Alors, qu'est-ce la différence? Et puis-je avoir les deux?
3 Réponses :
spring-boot-starter-web contient les dépendances suivantes:
En utilisant IntelliJ, vous pouvez afficher les dépendances de vos artefacts au bas de la structure du projet.
Étant donné que spring-boot-starter est une dépendance de spring-boot-starter-web, il serait inutile d'avoir les deux. Cela ne ferait aucun mal si vous gardiez les deux non plus, juste inutile.
spring-boot-starter fournit l'infrastructure de base de développement et d'exécution de votre application ainsi que les fonctionnalités de base de Spring. Si vous voulez des fonctionnalités Web telles que spring-mvc pour votre projet, vous devez utiliser spring-boot-starter-web. Cependant, si vous utilisez spring-boot-starter-web, vous n'avez pas besoin de mentionner explicitement spring-boot-starter.
spring-boot-starter est lui-même une dépendance de spring-boot-starter-web. Si vous n'incluez que la dépendance spring-boot-starter dans votre application, vous n'obtiendrez que l'infrastructure d'exécution avec certaines fonctionnalités de base. Donc, pour l'application Web, vous devez inclure spring-boot-starter-web afin que vous puissiez obtenir spring-mvc, jackson et spring-boot-starter. Il n'est pas nécessaire d'utiliser les deux. Si vous utilisez spring-boot-starter-web, ce sera suffisant pour votre application. Cependant, l'utilisation des deux ne provoquera pas une erreur.