Q:

where spring defines variable value, which is referred by some xml file

I am trying to understand from where does the value of a variable comes from, when it is referred in Spring xml file.
For example:
<context:property-placeholder location="classpath:/${com.example.deploy.environment}/com.example.config/mysql.properties" ignore-resource-not-found="false" />

Where is the value of com.example.deploy.environment defined? In my project I searched all over, however i couldn't find anywhere where this values is defined.
Any information in understanding this would be of great help.

A:

This value can come from a variety of source:

application.properties file which you can define in PropertyPlaceholderConfigurer bean. 
<bean id="mailProperties" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="location" value="classpath:application.properties" />
</bean>

...
//Inside application.properties
com.example.deploy.environment=prod

You can provide via command-line:
With Maven vm arguments for JVM System property:
mvn package -Dcom.example.deploy.environment=prod

Running Spring Boot Application:
java -jar app.jar --com.example.deploy.environment="prod"

From System Environment variable of the Operating System. You might have to restart after setting environment variable. See below for windows:

Refer this doc and this article for more info.

