Setting Spring Profile variable
spring, spring-boot, spring-profiles
Solution
You can simply set a system property on the server as follows...
-Dspring.profiles.active=test
Edit: To add this to tomcat in eclipse, select `Run -> Run Configurations` and choose your Tomcat run configuration. Click the `Arguments` tab and add `-Dspring.profiles.active=test` at the end of `VM arguments`. Another way would be to add the property to your catalina.properties in your `Servers` project, but if you add it there omit the `-D`.
Edit: For use with Spring Boot, you have an additional choice. You can pass the property as a program argument if you prepend the property with two dashes.
Here are two examples using a Spring Boot executable jar file...
System Property
$ java -jar -Dspring.profiles.active=test myproject.jar
Program Argument
$ java -jar myproject.jar --spring.profiles.active=test
Problem
I have two Spring profiles: `dev` and `test`. I want to set the active profile in the server environment, I don't want to set it in my code so that wherever I deploy my application the profile gets loaded based on the profile in the server. How can I do that?