What is the purpose of environment-based profiles in Spring Boot?
Environment-based profiles allow you to define different configurations for different environments, like development, testing, and production. This helps your app behave correctly depending on where it runs.
Click to reveal answer
beginner
How do you activate a specific profile in Spring Boot?
You can activate a profile by setting the spring.profiles.active property. For example, in application.properties or as a command line argument: --spring.profiles.active=dev.
Click to reveal answer
beginner
What file naming convention does Spring Boot use for profile-specific properties?
Spring Boot uses application-{profile}.properties or application-{profile}.yml. For example, application-dev.properties for the 'dev' profile.
Click to reveal answer
intermediate
Can you have multiple active profiles at the same time in Spring Boot?
Yes, you can activate multiple profiles by separating them with commas, like spring.profiles.active=dev,debug. Spring will load configurations from all active profiles.
Click to reveal answer
intermediate
How does Spring Boot decide which profile-specific properties to use when multiple profiles are active?
Spring Boot loads properties in order. The last profile in the list has higher priority and can override earlier profiles. This lets you combine and override settings as needed.
Click to reveal answer
Which property activates a Spring Boot profile?
Aspring.profile.enable
Bspring.profiles.active
Cspring.environment.profile
Dspring.boot.profile
✗ Incorrect
The correct property to activate profiles is spring.profiles.active.
What is the correct filename for properties used only in the 'test' profile?
Aapplication-test.properties
Bapplication.properties.test
Ctest-application.properties
Dapplication.properties
✗ Incorrect
Profile-specific files follow the pattern application-{profile}.properties, so application-test.properties is correct.
If you activate profiles 'dev' and 'prod' together, which profile's properties take precedence?
Aprod
Bdev
CBoth have equal priority
DDepends on alphabetical order
✗ Incorrect
The last profile listed in spring.profiles.active has higher priority and overrides earlier ones.
How can you activate a profile when running a Spring Boot app from the command line?
A--spring.profile=profileName
B--activate.profile=profileName
C--profile.active=profileName
D--spring.profiles.active=profileName
✗ Incorrect
You activate a profile on the command line with --spring.profiles.active=profileName.
Why use environment-based profiles in Spring Boot?
ATo store all settings in one file
BTo avoid using properties files
CTo run different code depending on environment
DTo disable configuration
✗ Incorrect
Profiles let you run different configurations or code depending on the environment, like dev or production.
Explain how Spring Boot uses environment-based profiles to manage different configurations.
Think about how you might want your app to behave differently in development vs production.
You got /4 concepts.
Describe how to activate multiple profiles and how Spring Boot resolves conflicts between them.
Consider the priority when two profiles set the same property.
You got /3 concepts.
Practice
(1/5)
1.
What is the main purpose of using profiles in a Spring Boot application?
easy
A. To separate configuration for different environments like development and production
B. To speed up the application startup time
C. To enable multi-threading in the application
D. To automatically generate database schemas
Solution
Step 1: Understand what profiles do
Profiles allow you to define different settings for different environments, such as development, testing, or production.
Step 2: Match purpose with options
Only To separate configuration for different environments like development and production describes separating configuration for different environments, which is the main use of profiles.
Final Answer:
To separate configuration for different environments like development and production -> Option A
Quick Check:
Profiles = environment-specific settings [OK]
Hint: Profiles separate configs by environment, like dev vs prod [OK]
Common Mistakes:
Thinking profiles speed up startup
Confusing profiles with threading
Assuming profiles auto-generate schemas
2.
Which of the following is the correct way to activate a profile named dev in application.properties?
easy
A. profiles.active=dev
B. spring.profiles.active=dev
C. spring.active.profile=dev
D. spring.profile=dev
Solution
Step 1: Recall the correct property key
The correct property to activate profiles is spring.profiles.active.
Step 2: Compare options
Only spring.profiles.active=dev uses the exact correct key and value format.
Final Answer:
spring.profiles.active=dev -> Option B
Quick Check:
Activate profile with spring.profiles.active [OK]
Hint: Use spring.profiles.active to set active profile [OK]
Common Mistakes:
Using spring.active.profile instead
Omitting 'spring' prefix
Using singular 'profile' instead of 'profiles'
3.
Given the following Spring Boot code snippet, what will be printed if the active profile is prod?
@Component
@Profile("dev")
public class DevService {
public DevService() {
System.out.println("DevService active");
}
}
@Component
@Profile("prod")
public class ProdService {
public ProdService() {
System.out.println("ProdService active");
}
}
medium
A. ProdService active
B. DevService active
C. Both DevService active and ProdService active
D. No output printed
Solution
Step 1: Identify active profile
The active profile is prod, so only beans with @Profile("prod") will be created.
Step 2: Determine which constructor runs
Only ProdService constructor runs, printing "ProdService active".
Final Answer:
ProdService active -> Option A
Quick Check:
@Profile("prod") runs only with prod profile [OK]
Hint: Only beans matching active profile run constructors [OK]
Common Mistakes:
Assuming both beans run regardless of profile
Confusing dev and prod profiles
Thinking no output prints if profile mismatches
4.
Consider this Spring Boot configuration snippet in application.properties:
spring.profiles.active=dev,prod
What is the problem with this configuration?
medium
A. Multiple profiles can be active simultaneously, so no problem
B. Profiles should be separated by semicolon, not comma
C. Activating both dev and prod profiles together can cause conflicts
D. spring.profiles.active cannot be set in application.properties
Solution
Step 1: Understand multiple active profiles
Spring Boot allows multiple profiles active at once, but dev and prod usually have conflicting settings.
Step 2: Identify the issue
Activating both dev and prod together can cause unexpected behavior or conflicts in configuration.
Final Answer:
Activating both dev and prod profiles together can cause conflicts -> Option C
Quick Check:
Dev and prod active together causes config conflicts [OK]
Hint: Avoid activating dev and prod profiles simultaneously [OK]
Common Mistakes:
Thinking comma separator is invalid
Believing multiple profiles never cause issues
Assuming spring.profiles.active can't be set in properties
5.
You want to create a bean that only loads when test profile is active and another bean that loads for all profiles except test. Which annotation setup is correct?
hard
A. @Profile("test") on first bean, no annotation on second bean
B. No need for @Profile, beans load automatically
C. @Profile("test") on first bean, @Profile("prod") on second bean
D. @Profile("test") on first bean, @Profile("!test") on second bean
Solution
Step 1: Use @Profile("test") for test-only bean
This ensures the first bean loads only when the test profile is active.
Step 2: Use @Profile("!test") for all except test
The negation !test means the second bean loads when test is not active.
Final Answer:
@Profile("test") on first bean, @Profile("!test") on second bean -> Option D
Quick Check:
Use @Profile("!profile") to exclude a profile [OK]
Hint: Use @Profile("!test") to exclude test profile [OK]
Common Mistakes:
Not using @Profile on second bean causes it to always load
Using @Profile("prod") limits second bean to prod only
Assuming beans load automatically without profiles
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.