где spring определяет значение переменной, на которое ссылается какой-либо файл xml

Я пытаюсь понять, откуда берется значение переменной, когда она упоминается в XML-файле Spring.

Например:

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

Где определяется значение com.example.deploy.environment? В моем проекте я искал повсюду, однако нигде не смог найти, где определены эти значения.

Любая информация для понимания этого будет очень полезна.


person CuriousMind    schedule 18.03.2016    source источник
comment
В: Откуда в файле spring.xml берется значение переменной? О: Важно осознавать, что это может быть несколько различных видов переменных (включая, помимо прочего, простые значения Java System.Property), и их можно определить или переопределить в нескольких разных местах. . Посмотрите на ссылки, которые привел Санджай Рават. Обязательно проголосуйте и примите его ответ, если вы нашли его полезным. Кроме того: как насчет этого вопроса, который вы задали несколько дней назад?   -  person paulsm4    schedule 19.03.2016
comment
PS: Если вы запускаете приложение Spring из IDE (например, Eclipse), вы, вероятно, добавили бы -Dcom.example.deploy.environment=abcxyz на вкладку «Аргументы» › «Аргументы виртуальной машины». Точно так же, если бы вы работали на TomCat или на сервере приложений, таком как WebSphere, вы также, вероятно, определили бы свои аргументы с помощью -D в настройках JVM.   -  person paulsm4    schedule 19.03.2016


Ответы (1)


Это значение может быть получено из различных источников:

  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. Вы можете предоставить через командную строку:

    С аргументами Maven vm для системного свойства JVM:

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

    Запуск приложения Spring Boot:

    java -jar app.jar --com.example.deploy.environment="prod"
    
    1. From System Environment variable of the Operating System. You might have to restart after setting environment variable. See below for windows:

В Windows

См. этот документ и эта статья для получения дополнительной информации.

person Sanjay Rawat    schedule 18.03.2016