Créer un prompt de projet Spring Boot Kotlin
-
Assurez-vous que les logiciels suivants sont installés sur votre système :
- Java 21
- Docker
- Docker Compose
-
Si vous devez personnaliser le nom du projet, changez
artifactIdetpackageNamedans download-spring-boot-project-template -
Si vous devez mettre à jour la version de Spring Boot, changez
bootVersiondans download-spring-boot-project-template
Vérifier la version de Java
- Exécutez la commande suivante dans le terminal et vérifiez la version de Java
java -version
Télécharger le modèle de projet Spring Boot
- Exécutez la commande suivante dans le terminal pour télécharger un modèle de projet Spring Boot
curl https://start.spring.io/starter.zip \
-d artifactId=${input:projectName:demo-kotlin} \
-d bootVersion=3.4.5 \
-d dependencies=configuration-processor,webflux,data-r2dbc,postgresql,data-redis-reactive,data-mongodb-reactive,validation,cache,testcontainers \
-d javaVersion=21 \
-d language=kotlin \
-d packageName=com.example \
-d packaging=jar \
-d type=gradle-project-kotlin \
-o starter.zip
Décompresser le fichier téléchargé
- Exécutez la commande suivante dans le terminal pour décompresser le fichier téléchargé
unzip starter.zip -d ./${input:projectName:demo-kotlin}
Supprimer le fichier zip téléchargé
- Exécutez la commande suivante dans le terminal pour supprimer le fichier zip téléchargé
rm -f starter.zip
Décompresser le fichier téléchargé
- Exécutez la commande suivante dans le terminal pour décompresser le fichier téléchargé
unzip starter.zip -d ./${input:projectName:demo-kotlin}
Ajouter des dépendances supplémentaires
- Insérez
springdoc-openapi-starter-webmvc-uietarchunit-junit5dans le fichierbuild.gradle.kts
dependencies {
implementation("org.springdoc:springdoc-openapi-starter-webflux-ui:2.8.6")
testImplementation("com.tngtech.archunit:archunit-junit5:1.2.1")
}
- Insérez les configurations SpringDoc dans le fichier
application.properties
# SpringDoc configurations
springdoc.swagger-ui.doc-expansion=none
springdoc.swagger-ui.operations-sorter=alpha
springdoc.swagger-ui.tags-sorter=alpha
- Insérez les configurations Redis dans le fichier
application.properties
# Redis configurations
spring.data.redis.host=localhost
spring.data.redis.port=6379
spring.data.redis.password=rootroot
- Insérez les configurations R2DBC dans le fichier
application.properties
# R2DBC configurations
spring.r2dbc.url=r2dbc:postgresql://localhost:5432/postgres
spring.r2dbc.username=postgres
spring.r2dbc.password=rootroot
spring.sql.init.mode=always
spring.sql.init.platform=postgres
spring.sql.init.continue-on-error=true
- Insérez les configurations MongoDB dans le fichier
application.properties
# MongoDB configurations
spring.data.mongodb.host=localhost
spring.data.mongodb.port=27017
spring.data.mongodb.authentication-database=admin
spring.data.mongodb.username=root
spring.data.mongodb.password=rootroot
spring.data.mongodb.database=test
-
Créez
docker-compose.yamlà la racine du projet et ajoutez les services suivants :redis:6,postgresql:17etmongo:8.- le service redis doit avoir
- mot de passe
rootroot - mappage du port 6379 vers 6379
- montage du volume
./redis_datavers/data
- mot de passe
- le service postgresql doit avoir
- mot de passe
rootroot - mappage du port 5432 vers 5432
- montage du volume
./postgres_datavers/var/lib/postgresql/data
- mot de passe
- le service mongo doit avoir
- nom d'utilisateur root initdb
root - mot de passe root initdb
rootroot - mappage du port 27017 vers 27017
- montage du volume
./mongo_datavers/data/db
- nom d'utilisateur root initdb
- le service redis doit avoir
-
Insérez les répertoires
redis_data,postgres_dataetmongo_datadans le fichier.gitignore -
Exécutez la commande gradle clean test pour vérifier si le projet fonctionne
./gradlew clean test
- (Optionnel)
docker-compose up -dpour démarrer les services,./gradlew spring-boot:runpour exécuter le projet Spring Boot,docker-compose rm -sfpour arrêter les services.
Faisons cela étape par étape.