Pour commencer, Spring boot et devtools ont facilité le développement. Spring boot utilise des conteneurs de servlets intégrés (Tomcat, undertow, jetty), ce qui permet d'avoir un code prêt pour la production, même dans un environnement de non-production.
Pour répondre à votre question sur l'exécution d'une application Spring-boot dans un environnement de non-production, nous pouvons exécuter l'application directement à partir de l'IDE Spring tool suite en faisant un clic droit -> run as Spring boot s'il s'agit d'un environnement local.
Si l'outil de construction utilisé est maven, à l'invite de commande mvn boot:run, si c'est gradle, gradle bootRun à partir du dossier racine de l'emplacement du projet à l'invite de commande. Si vous compilez votre application sous forme d'uber jar, alors Java -jar , et si votre environnement est Linux, vous pouvez démarrer en tant que processus.
En ce qui concerne l'ignorance de devtools dans l'environnement de production, Spring boot ignore intelligemment le jar de devtools si nous spécifions Spring-boot-devtools en tant qu'option dans les dépendances de votre outil de construction (maven, gradle). Dans gradle, le plugin Spring boot gradle se charge d'ignorer devtools pour le jar ou war final déployé.
Mise à jour : : Pour déboguer une application Spring Boot exécutée avec Gradle, comme vu à l'adresse suivante http://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#howto-remote-debug-gradle-run596
Ajoutez ceci à votre fichier build.gradle :
applicationDefaultJvmArgs = [
"-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005" ]
Dans IntelliJ Idea IDE ou STS, créez une nouvelle configuration Debug et dans les options sélectionnez "Remote". Les valeurs par défaut devraient convenir, mais faites attention au numéro de port et au type de transport ("socket"). Amusez-vous bien !