其中 spring 定义变量值,由某些 xml 文件引用

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

我试图了解在 Spring xml 文件中引用变量的值从何而来。

例如:

<context:property-placeholder location="classpath:/${com.example.deploy.environment}/com.example.config/mysql.properties" ignore-resource-not-found="false" />

com.example.deploy.environment的值在哪里定义的?在我的项目中,我到处搜索,但是我找不到任何定义这个值的地方。

任何有助于理解这一点的信息。

这个值可以有多种来源:

  1. application.properties 您可以在 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
    
  2. 您可以通过命令行提供:

    使用 JVM 系统的 Maven vm 参数 属性:

    mvn package -Dcom.example.deploy.environment=prod
    

    运行 Spring 引导应用程序:

    java -jar app.jar --com.example.deploy.environment="prod"
    
    1. 来自操作系统的系统环境变量。设置环境变量后可能需要重新启动。 windows见下文:

请参阅此 doc and this article 了解更多信息。