0
0
Spring Bootframework~20 mins

Test profiles and configuration in Spring Boot - Practice Problems & Coding Challenges

Choose your learning style9 modes available
Challenge - 5 Problems
🎖️
Spring Boot Profiles Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
component_behavior
intermediate
2:00remaining
What is the active profile output?
Given a Spring Boot application with two profiles dev and prod, and the following configuration:

application.properties:
spring.profiles.active=dev

application-dev.properties:
app.message=Development Mode

application-prod.properties:
app.message=Production Mode

@Component
public class MessagePrinter {
  @Value("${app.message}")
  private String message;

  public String getMessage() {
    return message;
  }
}

What will getMessage() return when the application runs?
ADevelopment Mode
BProduction Mode
Capp.message
Dnull
Attempts:
2 left
💡 Hint
Check which profile is active in application.properties.
📝 Syntax
intermediate
2:00remaining
Which configuration activates the 'test' profile correctly?
You want to activate the 'test' profile in a Spring Boot application. Which of the following ways correctly activates the profile?
ASet environment variable SPRING_PROFILES_ACTIVE=test
BAdd <code>spring.profiles.active=test</code> in <code>application-test.properties</code>
CAdd <code>@Profile("test")</code> on the main application class
DSet <code>spring.profiles.include=test</code> in <code>application.properties</code>
Attempts:
2 left
💡 Hint
Activating a profile means telling Spring which profile to use when starting.
🔧 Debug
advanced
2:00remaining
Why does the bean not load for 'prod' profile?
Consider this Spring Boot bean:

@Component
@Profile("prod")
public class ProdService {
  // service code
}

When running with the 'dev' profile active, the application fails to find ProdService and throws a NoSuchBeanDefinitionException. Why?
ABecause @Profile only works on configuration classes, not components
BBecause the bean class is missing the @Service annotation
CBecause the 'prod' profile is not active, so the bean is not created
DBecause the bean requires a constructor argument that is missing
Attempts:
2 left
💡 Hint
Check which profile is active and how @Profile works.
state_output
advanced
2:00remaining
What is the value of 'timeout' after loading profiles?
Given these property files:

application.properties:
timeout=30

application-dev.properties:
timeout=10

application-prod.properties:
timeout=60

And the active profile is set to 'prod'. What is the value of timeout injected by @Value("${timeout}")?
A10
B30
Cnull
D60
Attempts:
2 left
💡 Hint
Profile-specific properties override default properties.
🧠 Conceptual
expert
3:00remaining
How does Spring Boot resolve multiple active profiles with conflicting properties?
If you set multiple active profiles like spring.profiles.active=dev,prod and both profiles define the same property app.mode with different values, which value does Spring Boot use?
AThe value from the first profile listed in <code>spring.profiles.active</code> is used
BThe value from the last profile listed in <code>spring.profiles.active</code> is used
CSpring Boot throws an error due to conflicting properties
DSpring Boot merges both values into a list
Attempts:
2 left
💡 Hint
Think about the order Spring Boot loads profile properties.