2012-09-25 48 views
1
mvn -P dev 

如果我使用profile dev構建我的項目,那麼我想在我的spring bean中使用dev.properties,如下所示。可能嗎 ?如果是這樣,我怎麼能得到配置文件名稱?如何在spring bean文件中使用maven profile id值?

<bean id="xyz" class="abc.xyz"> 
    <property name="propertyFile" value="${maven_profile_id}.properties" /> 
</bean> 

在此先感謝。

回答

0

創建一個屬性文件,該文件將使用Maven的資源過濾進行填充,該過濾指定您在構建時使用的配置文件。

build.properties

activatedProfile=${profileId} 

的pom.xml(你並不需要過濾的完整目錄,定製根據需要)

<build> 
    <resources> 
     <resource> 
      <directory>src/main/resources</directory> 
      <filtering>true</filtering> 
     </resource> 
    <resources> 
</build> 

添加profileId(或任何你想調用它)財產下每個不同的配置文件:

<profile> 
    <id>dev</id> 
    <properties> 
     <profileId>dev</profileId> 
    </properties> 
</profile> 
<profile> 
    <id>qa</id> 
    <properties> 
     <profileId>qa</profileId> 
    </properties> 
</profile> 

然後,您可以使用${activatedProfile}.properties作爲一個bean

<bean id="xyz" class="abc.xyz"> 
    <property name="propertyFile" value="${activatedProfile}.properties" /> 
</bean> 
1

您可以使用Maven配置文件「簡」屬性添加到構建價值:

<profiles> 
    <profile> 
     <id>dev</id> 
     <properties> 
      <profile>dev</profile> 
     </properties> 
    </profile> 
</profiles> 

然後傳遞值到使用系統屬性您的應用程序,這裏是一個例如與神火:

<plugin> 
    <artifactId>maven-surefire-plugin</artifactId> 
    <configuration> 
     <systemPropertyVariables> 
      <profile>${profile}</profile> 
     </systemPropertyVariables> 
    </configuration> 
</plugin> 

最後這可以在你的應用程序中引用:

<bean id="xyz" class="abc.xyz"> 
    <property name="propertyFile" value="${profile}.properties" /> 
</bean> 

或者,如果您使用的是Spring 3.1或更高版本,您可能會發現XML profile功能可以滿足您的需求(儘管它可能是矯枉過正)。

相關問題