An introduction to Spring profiles
Before we prepare our application for production, let's talk a little bit about Spring profiles.
Spring profiles (https://docs.spring.io/spring/docs/current/spring-framework-reference/core.html#beans-definition-profiles-java) let you change the way your application behaves based on environments. This is achieved using the @Profile
annotations and profile-specific configuration files, which can be activated by specifying the spring.profiles.active
property. Based on the profile that we set here, Spring will choose the appropriate application.properties/application.yml
files and will include/exclude components that are included/excluded for the specific profile using the @Profile
annotation in the Java source code. For example, if we set spring.profiles.active=prod
, all the Spring components that have @Profile("prod")
will be instantiated and any component that has @Profile("!prod")
will be excluded. Similarly, Spring will load and use the application-prod...