1. 程式人生 > >SpringBoot(32) - Properties(4) - 使用Maven自動擴充套件屬性

SpringBoot(32) - Properties(4) - 使用Maven自動擴充套件屬性

參考文件:https://docs.spring.io/spring-boot/docs/1.5.17.RELEASE/reference/htmlsingle/#howto-automatic-expansion

 

使用Maven自動擴充套件屬性:

可以使用資源過濾從Maven專案自動擴充套件屬性。 如果使用spring-boot-starter-parent,那麼可以通過@ .. @佔位符引用Maven'專案屬性',例如:

[email protected]@
[email protected]@

注:

  • 這種方式僅對生產配置的屬性進行過濾(如不對src/test/resources進行過濾)
  • 如果啟用addResources標誌,則spring-boot:run可以將src/main/resources直接新增到類路徑(用於熱重新載入)。這繞過了資源過濾和此功能。 可以使用exec:java目標或自定義外掛的配置,有關詳細資訊參考/maven-plugin/usage.html

如果不使用spring-boot-starter-parent,則需要在pom.xml中(在<build />元素內):

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

並且在<plugins/>元素中新增:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-resources-plugin</artifactId>
    <version>2.7</version>
    <configuration>
        <delimiters>
            <delimiter>@</delimiter>
        </delimiters>
        <useDefaultDelimiters>false</useDefaultDelimiters>
    </configuration>
</plugin>

如果在配置中使用標準的Spring佔位符(例如$ {foo}),則useDefaultDelimiters屬性很重要。 如果該屬性未設定為false,則可以通過構建擴充套件它們。