0
0
Spring Bootframework~5 mins

@Profile for environment-specific beans in Spring Boot - Cheat Sheet & Quick Revision

Choose your learning style9 modes available
Recall & Review
beginner
What is the purpose of the @Profile annotation in Spring Boot?
The @Profile annotation is used to mark beans that should only be created when a specific environment or profile is active. It helps manage environment-specific configurations easily.
Click to reveal answer
beginner
How do you activate a Spring profile when running your application?
You can activate a Spring 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
intermediate
Can a bean have multiple profiles using @Profile? How?
Yes, you can specify multiple profiles in @Profile by listing them as an array, like @Profile({"dev", "test"}). The bean will be created if any one of these profiles is active.
Click to reveal answer
beginner
What happens if no profile is active and a bean is annotated with @Profile("dev")?
The bean will NOT be created because its profile does not match the active profile. Only beans with no profile or matching profiles are created.
Click to reveal answer
beginner
How can @Profile help in real-life application development?
It allows you to define different beans or configurations for environments like development, testing, and production. For example, you can use a mock service in development and a real service in production without changing code.
Click to reveal answer
What does the @Profile("prod") annotation do on a Spring bean?
ADisables the bean permanently
BCreates the bean in all profiles except 'prod'
CCreates the bean only when the 'prod' profile is active
DCreates the bean regardless of profile
How do you specify multiple profiles in @Profile?
A@Profile("dev,test")
B@Profile({"dev", "test"})
C@Profile("dev" & "test")
D@Profile("dev" | "test")
If no profile is active, which beans are created?
AOnly beans without any <code>@Profile</code> annotation
BOnly beans with <code>@Profile("default")</code>
CAll beans regardless of <code>@Profile</code>
DNo beans are created
How can you activate a profile when running a Spring Boot app from the command line?
Ajava -jar app.jar -Dspring.profile=dev
Bjava -jar app.jar -profile dev
Cjava -jar app.jar --profile=dev
Djava -jar app.jar --spring.profiles.active=dev
Why use @Profile instead of if-else checks in code?
AIt keeps configuration clean and separate by environment
BIt makes the app slower
CIt disables beans permanently
DIt is required by Spring Boot
Explain how @Profile helps manage different environments in a Spring Boot application.
Think about how you might use different settings or services in development versus production.
You got /4 concepts.
    Describe the steps to create and activate a Spring bean only for the 'test' environment using @Profile.
    Consider both the bean code and how to run the app with the profile active.
    You got /3 concepts.