Convert YML to Properties

Drag and drop files here or click to select.
Max file size 100mb.
Uploading progress:

YML vs Properties Format Comparison

Aspect YML (Source Format) Properties (Target Format)
Format Overview
YML
YAML Ain't Markup Language

YML is the short file extension for YAML — a human-readable data serialization format. Widely used in Docker Compose, Ruby on Rails, CI/CD pipelines, and many other tools that prefer the shorter .yml extension over .yaml.

Data Format Configuration
Properties
Java Properties File

Java Properties is a simple flat key-value configuration format native to the Java platform. Each line contains a key, a separator (= or :), and a value. It is the traditional configuration format for Java applications, servlets, Spring Framework, and Android apps. Nested structures are represented using dot-notation keys.

Configuration Java Ecosystem
Technical Specifications
Structure: Indentation-based hierarchy
Encoding: UTF-8
Format: Plain text with minimal syntax
Data Types: Strings, numbers, booleans, lists, maps, null
Extensions: .yml, .yaml
Structure: Flat key=value pairs, one per line
Encoding: ISO 8859-1 (traditional), UTF-8 (modern)
Format: Plain text with minimal syntax
Data Types: All values are strings
Extensions: .properties
Syntax Examples

YML uses indentation for nesting:

spring:
  datasource:
    url: jdbc:mysql://localhost/mydb
    username: admin
    password: secret
  jpa:
    hibernate:
      ddl-auto: update
    show-sql: true

Properties uses dot-notation:

spring.datasource.url=jdbc:mysql://localhost/mydb
spring.datasource.username=admin
spring.datasource.password=secret
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
Content Support
  • Key-value pairs
  • Nested objects (maps)
  • Lists and sequences
  • Multi-line strings
  • Anchors and aliases (references)
  • Comments
  • Multiple documents in one file
  • Key-value pairs (flat structure)
  • Comments (# or ! prefix)
  • Multi-line values (backslash continuation)
  • Unicode escape sequences
  • Dot-notation for nested keys
  • Indexed notation for lists ([0], [1])
  • Variable interpolation (in Spring)
Advantages
  • Shorter extension, widely recognized
  • Default in Docker Compose, Rails, Travis CI
  • Very human-readable syntax
  • Minimal syntax overhead
  • Wide language support
  • Comments support
  • Native Java platform support
  • Extremely simple syntax
  • No indentation sensitivity
  • Easy to parse and generate
  • Decades of tooling support
  • Works with ResourceBundle for i18n
Disadvantages
  • Indentation-sensitive (spaces matter)
  • No visual formatting capability
  • Tab characters not allowed
  • Not the official extension (.yaml is)
  • Complex nesting can be hard to read
  • No native hierarchy (flat only)
  • All values treated as strings
  • Repetitive long key prefixes
  • No native list or array support
  • Traditional encoding is ISO 8859-1
Common Uses
  • Docker Compose files (docker-compose.yml)
  • CI/CD pipelines (Travis CI, GitHub Actions)
  • Ruby on Rails configuration
  • Ansible playbooks
  • Kubernetes manifests
  • Spring Boot application configuration
  • Java application settings
  • Android string resources
  • Internationalization (i18n) bundles
  • Apache and Tomcat configuration
Best For
  • Docker and container configs
  • CI/CD pipeline definitions
  • Application configuration
  • Infrastructure as Code
  • Java and JVM application configs
  • Spring Boot externalized configuration
  • Legacy Java application migration
  • Simple key-value settings files
Version History
Introduced: 2001 (Clark Evans)
Current Version: YAML 1.2.2 (2021)
Status: Active, widely adopted
Note: .yml is an alternative extension for .yaml
Introduced: 1995 (JDK 1.0, Sun Microsystems)
Specification: java.util.Properties class
Status: Stable, foundational to Java
Evolution: ISO 8859-1 default, UTF-8 support added
Software Support
Docker: docker-compose.yml (default)
GitHub: .github/workflows/*.yml
Ruby: config/*.yml (Rails convention)
Other: Ansible, Kubernetes, Helm charts
Java: java.util.Properties (built-in)
Spring: application.properties (native)
IDEs: IntelliJ, Eclipse, VS Code support
Other: Apache Commons Config, Gradle, Maven

Why Convert YML to Java Properties?

Converting YML to Properties format is one of the most common configuration transformations in the Java ecosystem. Spring Boot supports both application.yml and application.properties, and many teams need to switch between these formats. Legacy Java applications, third-party libraries, and deployment environments may require the traditional .properties format, while your source configuration is maintained as YML.

The conversion flattens YML's nested hierarchy into dot-notation keys. For example, spring.datasource.url in a properties file corresponds to a nested structure in YML. This flattening is particularly useful when migrating between Spring Boot configuration styles, sharing settings with non-YAML-aware tools, or deploying to environments that only support .properties files.

Key Benefits of Converting YML to Properties:

  • Spring Boot Compatibility: Switch between application.yml and application.properties seamlessly
  • Legacy Support: Use configurations with older Java applications that only read .properties
  • Flat Structure: Dot-notation keys are easier to grep, sort, and diff
  • Environment Variables: Properties map directly to environment variable overrides
  • Tooling: Many Java tools and IDEs have better properties file support
  • Simplicity: No indentation concerns — each setting is a self-contained line

Practical Examples

Example 1: Spring Boot Application Config

Input YML file (application.yml):

server:
  port: 8080
  servlet:
    context-path: /api
spring:
  datasource:
    url: jdbc:postgresql://localhost:5432/mydb
    username: dbuser
    password: dbpass
  jpa:
    hibernate:
      ddl-auto: validate
    show-sql: false

Output Properties file (application.properties):

server.port=8080
server.servlet.context-path=/api
spring.datasource.url=jdbc:postgresql://localhost:5432/mydb
spring.datasource.username=dbuser
spring.datasource.password=dbpass
spring.jpa.hibernate.ddl-auto=validate
spring.jpa.show-sql=false

Example 2: Logging Configuration

Input YML file (logging.yml):

logging:
  level:
    root: WARN
    com.myapp: DEBUG
    org.springframework: INFO
  file:
    name: /var/log/myapp.log
    max-size: 10MB
    max-history: 30

Output Properties file (logging.properties):

logging.level.root=WARN
logging.level.com.myapp=DEBUG
logging.level.org.springframework=INFO
logging.file.name=/var/log/myapp.log
logging.file.max-size=10MB
logging.file.max-history=30

Example 3: Spring Boot Security and OAuth2 Config

Input YML file (application.yml):

spring:
  security:
    oauth2:
      client:
        registration:
          google:
            client-id: your-google-client-id
            client-secret: your-google-secret
            scope:
              - openid
              - profile
              - email
        provider:
          google:
            authorization-uri: https://accounts.google.com/o/oauth2/auth
            token-uri: https://oauth2.googleapis.com/token
  session:
    timeout: 30m
    cookie:
      secure: true
      http-only: true

Output Properties file (application.properties):

spring.security.oauth2.client.registration.google.client-id=your-google-client-id
spring.security.oauth2.client.registration.google.client-secret=your-google-secret
spring.security.oauth2.client.registration.google.scope[0]=openid
spring.security.oauth2.client.registration.google.scope[1]=profile
spring.security.oauth2.client.registration.google.scope[2]=email
spring.security.oauth2.client.provider.google.authorization-uri=https://accounts.google.com/o/oauth2/auth
spring.security.oauth2.client.provider.google.token-uri=https://oauth2.googleapis.com/token
spring.session.timeout=30m
spring.session.cookie.secure=true
spring.session.cookie.http-only=true

Frequently Asked Questions (FAQ)

Q: How are nested YML keys converted to properties?

A: Nested keys are joined with dots. For example, spring: datasource: url: in YML becomes spring.datasource.url= in properties. Each leaf value in the YML tree produces one line in the properties file.

Q: How are YML lists handled?

A: YML lists are converted to indexed properties. For example, a list under servers: becomes servers[0]=value1, servers[1]=value2, etc. This is the standard Spring Boot convention for list properties.

Q: Can I use the output with Spring Boot?

A: Yes, the output is fully compatible with Spring Boot. Simply save it as application.properties in your src/main/resources directory, and Spring Boot will read it exactly as it would read the equivalent application.yml file.

Q: Are YML comments preserved?

A: YML comments (# lines) are converted to properties comments (also # lines) where possible. However, inline comments associated with specific values may not be preserved in all cases due to the structural differences between the formats.

Q: What about special characters in values?

A: Special characters like backslashes, colons, and equals signs in values are properly escaped in the properties output according to the Java Properties specification. Unicode characters outside ISO 8859-1 are preserved as UTF-8 text.

Q: Can I convert application.properties back to YML?

A: Yes, this is a common round-trip conversion. Our converter also supports properties-to-YML conversion, making it easy to switch between formats depending on your project's requirements.