如何使我的applicationContext.xml文件从属性文件中提取值?

时间:2018-08-02 19:59:24

标签: java xml spring build pom.xml

我对Java还是很陌生,有一个我正在努力的项目正在努力解决。

在最长的时间内,我们为该应用构建了一个非常笨拙的构建过程,您必须手动进入并更改pom.xml文件中的值才能从测试值转换为产品值。我正在尝试解决此问题,以便您可以改用配置文件标志进行构建,但是我遇到了一件麻烦事。有一个applicationContext.xml文件,其中将数据库URL硬编码到其中,我希望能够根据配置文件进行更改,但是我在弄清楚如何做到这一点上遇到了麻烦。

所讨论的行如下所示:

<property name="url" value="jdbc:mysql://databaseserver:3306/testDatabase" />

如何在我的application.properties文件中加载正在设置的属性?

app.database.url="jdbc:mysql://databaseserver:3306/testDatabase"

2 个答案:

答案 0 :(得分:0)

您可以通过几种方式来实现。例如,您可以将属性直接放在配置文件中的pom.xml文件中,也可以将它们放置在.properties文件中,然后确定在配置文件级别上应使用哪个文件。

这是执行此操作的第一种方法: 首先,您将在主pom.xml中编写类似的内容:

     <project> 

     ...

      <profiles>
        <profile>
          <id>development</id>
          <activation>
            <property>
              <name>env</name>
              <value>dev</value>
            </property>
          </activation>
          <properties>
          <app.database.url>jdbc:mysql://databaseserver:3306/testDatabase</app.database.url>
          </properties>
        </profile>  
<profile>
          <id>production</id>
          <activation>
            <property>
              <name>env</name>
              <value>prd</value>
            </property>
          </activation>
          <properties>
          <app.database.url>jdbc:mysql://anotherserver:1234/veryImportantProductionDatabase</app.database.url>
          </properties>
        </profile>
        ...   </profiles> 
</project>

然后,您将属性标签替换为给定的占位符,即

 <property name="url" value="${app.database.url}" />

和瞧。希望有帮助

答案 1 :(得分:0)

简单的只是引用applicationContext.xml中的属性文件

<property name="url" value="${app.database.url} />