Create Spring Boot Java project prompt
- Please make sure you have the following software installed on your system:
- Java 21 - Docker - Docker Compose
- If you need to custom the project name, please change the
artifactIdand thepackageNamein download-spring-boot-project-template - If you need to update the Spring Boot version, please change the
bootVersionin download-spring-boot-project-template
Check Java version
- Run following command in terminal and check the version of Java
java -versionDownload Spring Boot project template
- Run following command in terminal to download a Spring Boot project template
curl https://start.spring.io/starter.zip \
-d artifactId=${input:projectName:demo-java} \
-d bootVersion=3.4.5 \
-d dependencies=lombok,configuration-processor,web,data-jpa,postgresql,data-redis,data-mongodb,validation,cache,testcontainers \
-d javaVersion=21 \
-d packageName=com.example \
-d packaging=jar \
-d type=maven-project \
-o starter.zipUnzip the downloaded file
- Run following command in terminal to unzip the downloaded file
unzip starter.zip -d ./${input:projectName:demo-java}Remove the downloaded zip file
- Run following command in terminal to delete the downloaded zip file
rm -f starter.zipChange directory to the project root
- Run following command in terminal to change directory to the project root
cd ${input:projectName:demo-java}Add additional dependencies
- Insert
springdoc-openapi-starter-webmvc-uiandarchunit-junit5dependency intopom.xmlfile
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
<version>2.8.6</version>
</dependency>
<dependency>
<groupId>com.tngtech.archunit</groupId>
<artifactId>archunit-junit5</artifactId>
<version>1.2.1</version>
<scope>test</scope>
</dependency>Add SpringDoc, Redis, JPA and MongoDB configurations
- Insert SpringDoc configurations into
application.propertiesfile
# SpringDoc configurations
springdoc.swagger-ui.doc-expansion=none
springdoc.swagger-ui.operations-sorter=alpha
springdoc.swagger-ui.tags-sorter=alpha- Insert Redis configurations into
application.propertiesfile
# Redis configurations
spring.data.redis.host=localhost
spring.data.redis.port=6379
spring.data.redis.password=rootroot- Insert JPA configurations into
application.propertiesfile
# JPA configurations
spring.datasource.driver-class-name=org.postgresql.Driver
spring.datasource.url=jdbc:postgresql://localhost:5432/postgres
spring.datasource.username=postgres
spring.datasource.password=rootroot
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.format_sql=true- Insert MongoDB configurations into
application.propertiesfile
# 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=testAdd docker-compose.yaml with Redis, PostgreSQL and MongoDB services
- Create
docker-compose.yamlat project root and add following services:redis:6,postgresql:17andmongo:8.
- redis service should have - password rootroot - mapping port 6379 to 6379 - mounting volume ./redis_data to /data - postgresql service should have - password rootroot - mapping port 5432 to 5432 - mounting volume ./postgres_data to /var/lib/postgresql/data - mongo service should have - initdb root username root - initdb root password rootroot - mapping port 27017 to 27017 - mounting volume ./mongo_data to /data/db
Add .gitignore file
- Insert
redis_data,postgres_dataandmongo_datadirectories in.gitignorefile
Run Maven test command
- Run maven clean test command to check if the project is working
./mvnw clean testRun Maven run command (Optional)
- (Optional)
docker-compose up -dto start the services,./mvnw spring-boot:runto run the Spring Boot project,docker-compose rm -sfto stop the services.