Bird
Raised Fist0
Spring Bootframework~10 mins

Environment variables in configuration in Spring Boot - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to read an environment variable in Spring Boot application.properties.

Spring Boot
server.port=[1]
Drag options to blanks, or click blank then click option'
A${PORT}
BPORT
C$PORT
D${PORT:8080}
Attempts:
3 left
💡 Hint
Common Mistakes
Using $PORT without braces
Not providing default value
Using plain PORT without ${}
2fill in blank
medium

Complete the annotation to inject an environment variable into a Spring Boot component.

Spring Boot
@Value("[1]")
private String dbUrl;
Drag options to blanks, or click blank then click option'
A"${DATABASE_URL:jdbc:h2:mem:testdb}"
B"DATABASE_URL"
C"$DATABASE_URL"
D"${DATABASE_URL}"
Attempts:
3 left
💡 Hint
Common Mistakes
Omitting ${} syntax
Not adding quotes around the string
Using $ without braces
3fill in blank
hard

Fix the error in this Spring Boot configuration to correctly use environment variables with default values.

Spring Boot
spring.datasource.url=[1]
Drag options to blanks, or click blank then click option'
ADB_URL:jdbc:mysql://localhost:3306/mydb
B$DB_URL:jdbc:mysql://localhost:3306/mydb
C${DB_URL:jdbc:mysql://localhost:3306/mydb}
D${DB_URL, jdbc:mysql://localhost:3306/mydb}
Attempts:
3 left
💡 Hint
Common Mistakes
Using $ without braces
Using comma instead of colon
Omitting ${} syntax
4fill in blank
hard

Fill both blanks to define a Spring Boot property that reads an environment variable with a fallback and inject it using @Value.

Spring Boot
@Value("[1]")
private String apiKey;

# application.properties
external.api.key=[2]
Drag options to blanks, or click blank then click option'
A"${API_KEY:defaultKey}"
B${API_KEY:defaultKey}
C"${EXTERNAL_API_KEY:defaultKey}"
D${EXTERNAL_API_KEY:defaultKey}
Attempts:
3 left
💡 Hint
Common Mistakes
Missing quotes in @Value
Adding quotes in properties file
Using wrong variable names
5fill in blank
hard

Fill all three blanks to create a configuration class that reads environment variables with defaults using @Value and exposes them as beans.

Spring Boot
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class AppConfig {

    @Value("[1]")
    private String host;

    @Value("[2]")
    private int port;

    @Bean
    public String serviceUrl() {
        return "http://" + host + ":" + [3];
    }
}
Drag options to blanks, or click blank then click option'
A${SERVICE_HOST:localhost}
B${SERVICE_PORT:8080}
Cport
Dhost
Attempts:
3 left
💡 Hint
Common Mistakes
Using quotes incorrectly
Using variable names instead of ${} in @Value
Using host instead of port in return

Practice

(1/5)
1. What is the correct way to reference an environment variable named DB_HOST in a Spring Boot application.properties file?
easy
A. Use #DB_HOST# to reference the environment variable.
B. Use ${DB_HOST} to reference the environment variable.
C. Use env(DB_HOST) to reference the environment variable.
D. Use DB_HOST directly without any syntax.

Solution

  1. Step 1: Understand Spring Boot environment variable syntax

    Spring Boot uses ${VAR_NAME} syntax to inject environment variables into configuration files.
  2. Step 2: Match the syntax to the variable name

    For the variable DB_HOST, the correct syntax is ${DB_HOST}.
  3. Final Answer:

    Use ${DB_HOST} to reference the environment variable. -> Option B
  4. Quick Check:

    Environment variable syntax = ${VAR_NAME} [OK]
Hint: Remember: Spring Boot uses ${VAR_NAME} for env variables [OK]
Common Mistakes:
  • Using #VAR_NAME# instead of ${VAR_NAME}
  • Trying to call env(VAR_NAME) like a function
  • Using variable name without any syntax
2. Which of the following is the correct syntax to provide a default value for an environment variable PORT in application.properties?
easy
A. server.port=${PORT:8080}
B. server.port=${PORT:-8080}
C. server.port=${PORT=8080}
D. server.port=$PORT?8080

Solution

  1. Step 1: Recall default value syntax in Spring Boot

    Spring Boot uses ${VAR_NAME:defaultValue} to provide a default if the environment variable is missing.
  2. Step 2: Identify the correct syntax among options

    server.port=${PORT:8080} uses ${PORT:8080}, which is the correct way to set default port 8080.
  3. Final Answer:

    server.port=${PORT:8080} -> Option A
  4. Quick Check:

    Default value syntax = ${VAR_NAME:default} [OK]
Hint: Use colon : after variable name for default values [OK]
Common Mistakes:
  • Using = instead of : for default values
  • Using shell-style ${VAR:-default} which is invalid here
  • Using $VAR without braces or default
3. Given the following application.properties snippet:
app.name=${APP_NAME:MyApp}
app.port=${APP_PORT:9090}

If the environment variables APP_NAME is set to TestApp and APP_PORT is not set, what will be the values of app.name and app.port at runtime?
medium
A. app.name=TestApp and app.port=9090
B. app.name=MyApp and app.port=9090
C. app.name=TestApp and app.port=null
D. app.name=null and app.port=9090

Solution

  1. Step 1: Check environment variable APP_NAME

    APP_NAME is set to 'TestApp', so app.name uses this value, ignoring the default.
  2. Step 2: Check environment variable APP_PORT

    APP_PORT is not set, so app.port uses the default value 9090.
  3. Final Answer:

    app.name=TestApp and app.port=9090 -> Option A
  4. Quick Check:

    Set var overrides default; unset uses default [OK]
Hint: Set env var overrides default; unset uses default [OK]
Common Mistakes:
  • Assuming default is used even if env var is set
  • Assuming null if env var is missing without default
  • Confusing variable names or values
4. Consider this application.properties line:
database.url=jdbc:mysql://${DB_HOST}:${DB_PORT:3306}/mydb

When running the app, it throws an error because DB_HOST is not set. What is the best fix?
medium
A. Ignore the error; Spring Boot will use a fallback automatically.
B. Remove ${DB_HOST} and hardcode the host.
C. Set a default value for DB_HOST like ${DB_HOST:localhost}.
D. Change syntax to ${DB_HOST:-localhost} to fix it.

Solution

  1. Step 1: Identify cause of error

    DB_HOST is not set and no default is provided, causing Spring Boot to fail resolving the variable.
  2. Step 2: Provide a default value using correct syntax

    Use ${DB_HOST:localhost} to supply a default host if the environment variable is missing.
  3. Final Answer:

    Set a default value for DB_HOST like ${DB_HOST:localhost}. -> Option C
  4. Quick Check:

    Missing env var needs default to avoid errors [OK]
Hint: Always provide defaults for required env vars to avoid errors [OK]
Common Mistakes:
  • Using shell syntax ${VAR:-default} which Spring Boot does not support
  • Assuming Spring Boot auto-fills missing env vars
  • Hardcoding values reduces flexibility
5. You want to configure a Spring Boot app to read a nested environment variable for a Redis URL with fallback defaults. Which application.properties line correctly uses environment variables REDIS_HOST and REDIS_PORT with defaults localhost and 6379 respectively?
hard
A. redis.url=redis://$REDIS_HOST:$REDIS_PORT
B. redis.url=redis://${REDIS_HOST:-localhost}:${REDIS_PORT:-6379}
C. redis.url=redis://${REDIS_HOST}${REDIS_PORT}
D. redis.url=redis://${REDIS_HOST:localhost}:${REDIS_PORT:6379}

Solution

  1. Step 1: Recall Spring Boot default value syntax

    Spring Boot uses ${VAR_NAME:default} to provide defaults for environment variables.
  2. Step 2: Check each option for correct syntax and completeness

    redis.url=redis://${REDIS_HOST:localhost}:${REDIS_PORT:6379} correctly uses ${REDIS_HOST:localhost} and ${REDIS_PORT:6379} with colon syntax and includes the colon separator between host and port.
  3. Final Answer:

    redis.url=redis://${REDIS_HOST:localhost}:${REDIS_PORT:6379} -> Option D
  4. Quick Check:

    Use colon : for defaults; include separators explicitly [OK]
Hint: Use ${VAR:default} and include separators like : explicitly [OK]
Common Mistakes:
  • Using shell-style :- instead of : for defaults
  • Omitting colon between host and port
  • Using $VAR without braces or defaults
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