Generate Spring Boot configs
instantly — all profiles, all tools
.properties / YAML · Dev + Staging + Prod profiles · Maven + Gradle · Docker Compose · ENV vars table
# Base configuration
server.port=8080About Spring Boot Config Generator
Spring Boot uses application.properties or application.yml files to externalise configuration — database URLs, server ports, logging levels, security settings, caching, and more. Managing these files manually across multiple environments (dev, staging, production) leads to inconsistencies and errors. This generator creates ready-to-use Spring Boot configuration files for common components with best-practice defaults, and generates the corresponding environment variable mappings for Kubernetes, Docker, and ECS deployments.
Select the components your application uses — JPA, Redis, Kafka, security, logging, and others — fill in the values, and get a complete, well-structured application.yml with per-profile variants (base, dev, staging, prod) plus a table of environment variables that override each property at deployment time.
Features
🌱 application.yml
Generates clean, well-commented YAML with proper Spring Boot property hierarchy and profile-specific overrides.
📄 application.properties
Also outputs flat .properties format for teams that prefer it or are using older Spring Boot versions.
🔧 Multi-profile
Generates separate config sections for base, dev, staging, and production with appropriate defaults for each environment.
🌍 Env var mapping
Shows the SCREAMING_SNAKE_CASE environment variable that overrides each property — ready to paste into Docker, Kubernetes, or ECS configs.
☕ Common components
Covers JPA/Hibernate, DataSource, Redis, Kafka, RabbitMQ, logging, server, security, actuator, and more.
📋 Copy & Download
Copy the generated config or download it as a file ready to drop into your Spring Boot project's resources folder.
Frequently Asked Questions
When should I use application.yml vs application.properties?
Both formats are functionally equivalent in Spring Boot. YAML is preferred for hierarchical configurations because nested properties are represented as indented blocks rather than dot-separated keys — making complex configs like JPA settings and Kafka producer/consumer configurations much more readable. Use .properties if your team prefers it or if you are using a framework that does not support YAML.
How do Spring Boot profiles work?
Spring Boot profiles let you maintain environment-specific configuration. The application.yml (or application.properties) file is always loaded first as the base. Files named application-dev.yml, application-staging.yml, and application-prod.yml are then loaded and merged, with the profile-specific values overriding the base. Activate a profile with the SPRING_PROFILES_ACTIVE environment variable.
How do environment variables override application.properties?
Spring Boot automatically maps environment variables to properties using a relaxed binding convention. A property named spring.datasource.url is overridden by the environment variable SPRING_DATASOURCE_URL. Dots and hyphens become underscores, and the whole name is uppercased. This allows you to keep sensitive values (passwords, API keys) out of your config files and inject them at deployment time.
How do I connect Spring Boot to a PostgreSQL database?
Set spring.datasource.url=jdbc:postgresql://host:5432/dbname, spring.datasource.username=user, spring.datasource.password=password, and spring.datasource.driver-class-name=org.postgresql.Driver. Add spring.jpa.database-platform=org.hibernate.dialect.PostgreSQLDialect. Add the postgresql JDBC driver to your pom.xml or build.gradle.
What is the difference between spring.jpa.hibernate.ddl-auto create, update, and validate?
create drops and recreates the schema on startup (development only). create-drop is like create but also drops on shutdown. update applies only the changes needed (risky in production — use migration tools like Flyway instead). validate checks that the schema matches your entities but makes no changes (recommended for production). none disables automatic schema management entirely.