Senior
What are Spring Profiles and how to configure an application for different environments? How to influence the bean creation process?
sobes.tech AI
Answer from AI
Spring Profiles allow you to separate application configuration for different environments (e.g., dev, test, prod). This is convenient for managing settings and creating environment-specific beans.
To use profiles:
- You can specify settings for a particular profile in
application.propertiesorapplication.yml, for exampleapplication-dev.properties. - Activate a profile via a startup parameter:
-Dspring.profiles.active=devor through environment variables.
Annotations are used to influence bean creation:
@Configuration
@Profile("dev")
public class DevConfig {
@Bean
public MyBean myBean() {
return new MyBean("dev config");
}
}
@Configuration
@Profile("prod")
public class ProdConfig {
@Bean
public MyBean myBean() {
return new MyBean("prod config");
}
}
Thus, depending on the active profile, Spring will create the corresponding beans. This allows flexible changes to application behavior without modifying the code.