2015-10-20 21 views
2

由於我們針對不同的構建和部署使用不同的application.properties文件(例如對於不同類型的開發人員和測試環境,除了部署到Prod之外),我希望能夠更改配置了哪個init方法對於Spring的application-context.xml中的Flyway bean。我想要做這樣的事情:我應該能夠爲Flyway bean的init方法使用Spring佔位符嗎?

<context:property-placeholder location="classpath:application.properties,classpath:application-instance.properties"/> 
<bean id="flyway" class="org.flywaydb.core.Flyway" init-method="${flyway.database.init.method}"> 
    <property name="baselineOnMigrate" value="true" /> 
    <property name="locations" value="classpath:/db-migrations/sql/" /> 
    <property name="dataSource" ref="dataSource" /> 
</bean>  

但是,即使我使用這個application.properties中在XML配置其他佔位符的文件,我得到這個錯誤:

.BeanDefinitionValidationException: Couldn't find an init method named '${flyway.database.init.method}' on bean with name 'flyway'

+0

您使用的是什麼版本的彈簧? – leeor

+0

我們正在使用4.0.2 – tblank

回答

2

如果您正在使用spring 3.1或更高版本,我強烈建議您查看使用環境配置文件。他們是專門爲解決這個問題而設計的。

查看詳情post

+0

這看起來很有趣,我會檢查出來,謝謝。 – tblank

相關問題