Bird
Raised Fist0
Spring Bootframework~5 mins

application.yml alternative in Spring Boot

Choose your learning style10 modes available
Introduction

Sometimes you want to configure your Spring Boot app using a different file format than application.yml. This helps when you prefer simpler or more familiar formats.

You want to use <code>application.properties</code> instead of YAML for easier editing.
You need to override settings in environment variables for cloud deployment.
You want to use command line arguments to quickly change config without files.
You prefer JSON format for configuration in some cases.
You want to externalize config in a custom file for different environments.
Syntax
Spring Boot
spring.application.name=MyApp
server.port=8080
logging.level.root=INFO

application.properties uses key=value pairs, one per line.

Keys use dot notation to represent nested properties.

Examples
Basic properties file with app name and port.
Spring Boot
spring.application.name=MyApp
server.port=8080
Set logging level for Spring framework to DEBUG.
Spring Boot
logging.level.org.springframework=DEBUG
Database connection settings in properties format.
Spring Boot
spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=root
spring.datasource.password=secret
Sample Program

This Spring Boot app reads the app name from application.properties and shows it on the home page.

Spring Boot
package com.example.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@SpringBootApplication
public class DemoApplication {
    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}

@RestController
class HelloController {

    @Value("${spring.application.name}")
    private String appName;

    @GetMapping("/")
    public String home() {
        return "Welcome to " + appName + "!";
    }
}
OutputSuccess
Important Notes

You can use application.properties as a simple alternative to application.yml.

Environment variables and command line args can also override these settings.

YAML supports complex structures better, but properties files are easier for simple configs.

Summary

application.properties is a common alternative to application.yml.

It uses simple key=value lines for configuration.

You can choose the format that fits your project and team best.

Practice

(1/5)
1. Which file format is a common alternative to application.yml in Spring Boot for configuration?
easy
A. config.ini
B. config.xml
C. settings.json
D. application.properties

Solution

  1. Step 1: Understand Spring Boot configuration files

    Spring Boot supports multiple configuration file formats, but the two most common are application.yml and application.properties.
  2. Step 2: Identify the alternative format

    The application.properties file uses simple key=value pairs and is widely used as an alternative to YAML files.
  3. Final Answer:

    application.properties -> Option D
  4. Quick Check:

    Alternative to application.yml = application.properties [OK]
Hint: Remember: properties files use key=value lines [OK]
Common Mistakes:
  • Confusing XML or JSON as default Spring Boot config
  • Thinking config.ini is supported by Spring Boot
  • Assuming YAML is the only option
2. Which of the following is the correct syntax for setting a server port in application.properties?
easy
A. server.port=8080
B. server.port => 8080
C. server.port : 8080
D. server.port -> 8080

Solution

  1. Step 1: Recall properties file syntax

    In application.properties, each configuration is set as a key=value pair without colons or arrows.
  2. Step 2: Identify the correct key-value format

    The correct syntax uses an equals sign: server.port=8080.
  3. Final Answer:

    server.port=8080 -> Option A
  4. Quick Check:

    Properties syntax uses = not : or arrows [OK]
Hint: Properties files always use key=value format [OK]
Common Mistakes:
  • Using colon instead of equals sign
  • Using arrow symbols which are invalid
  • Mixing YAML syntax with properties syntax
3. Given the following application.properties snippet:
spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=root
spring.datasource.password=pass123

What is the effect of this configuration?
medium
A. It sets up a PostgreSQL database connection.
B. It configures a MySQL database connection with the specified URL and credentials.
C. It disables the datasource configuration.
D. It causes a syntax error and fails to start.

Solution

  1. Step 1: Analyze the datasource properties

    The keys spring.datasource.url, username, and password configure the database connection details.
  2. Step 2: Identify the database type and credentials

    The URL contains jdbc:mysql://, indicating a MySQL database with host localhost and database mydb. Username and password are set accordingly.
  3. Final Answer:

    It configures a MySQL database connection with the specified URL and credentials. -> Option B
  4. Quick Check:

    Datasource URL with jdbc:mysql = MySQL config [OK]
Hint: Look for jdbc:mysql in URL to identify MySQL config [OK]
Common Mistakes:
  • Assuming PostgreSQL from MySQL URL
  • Thinking this disables datasource
  • Confusing syntax as error
4. You wrote this in application.properties:
server.port9090

Why does your Spring Boot app fail to start on port 9090?
medium
A. Spaces are not allowed anywhere in properties files.
B. Port 9090 is reserved and cannot be used.
C. Missing equals sign between key and value causes syntax error.
D. Property name is incorrect; should be server.port.number.

Solution

  1. Step 1: Check properties file syntax

    Each line must have a key and value separated by an equals sign (=) or colon (:).
  2. Step 2: Identify the missing equals sign

    The line server.port9090 lacks the equals sign, causing it to be parsed as a single key with no value and preventing the port from being set.
  3. Final Answer:

    Missing equals sign between key and value causes syntax error. -> Option C
  4. Quick Check:

    Properties need key=value format [OK]
Hint: Always use = or : between key and value [OK]
Common Mistakes:
  • Omitting equals sign
  • Using wrong property name
  • Assuming spaces are forbidden everywhere
5. You want to migrate your Spring Boot app configuration from application.yml to application.properties. Which of the following is the correct way to convert this YAML snippet?
server:
  port: 9090
spring:
  datasource:
    url: jdbc:h2:mem:testdb
    username: sa
    password: ""
hard
A. server.port=9090 spring.datasource.url=jdbc:h2:mem:testdb spring.datasource.username=sa spring.datasource.password=
B. server.port : 9090 spring.datasource.url : jdbc:h2:mem:testdb spring.datasource.username : sa spring.datasource.password : ""
C. server.port => 9090 spring.datasource.url => jdbc:h2:mem:testdb spring.datasource.username => sa spring.datasource.password => ""
D. server.port9090 spring.datasource.urljdbc:h2:mem:testdb spring.datasource.usernamesa spring.datasource.password""

Solution

  1. Step 1: Understand YAML to properties conversion

    YAML uses indentation and colons, while properties files use dot notation and equals signs.
  2. Step 2: Convert nested YAML keys to dot notation with =

    The nested keys become dot-separated keys, and values are assigned with equals signs. Empty password is represented by an empty value.
  3. Final Answer:

    server.port=9090 spring.datasource.url=jdbc:h2:mem:testdb spring.datasource.username=sa spring.datasource.password= -> Option A
  4. Quick Check:

    YAML nesting = dot notation + = in properties [OK]
Hint: Convert YAML nesting to dot keys with = [OK]
Common Mistakes:
  • Using colon instead of equals in properties
  • Using arrows or spaces instead of =
  • Not converting nested keys to dot notation
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard