【问题标题】:Should I be able to use a Spring placeholder for Flyway bean's init-method?我应该能够为 Flyway bean 的 init 方法使用 Spring 占位符吗?
【发布时间】:2015-10-21 01:43:59
【问题描述】:

由于我们为不同的构建和部署使用不同的 application.properties 文件(例如,对于不同类型的开发人员和测试环境,除了部署到 Prod 之外),我希望能够更改哪个 init-method 是在 Spring 的 application-context.xml 中为 Flyway bean 配置。我想做这样的事情:

<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>    

但即使我在 XML 配置的其他占位符中使用此 application.properties 文件,我也会收到此错误:

.BeanDefinitionValidationException:在名为“flyway”的 bean 上找不到名为“${flyway.database.init.method}”的初始化方法

【问题讨论】:

  • 你用的是什么版本的spring?

标签: spring flyway


【解决方案1】:

如果您使用spring 3.1 或更高版本,我强烈建议您考虑为此使用环境配置文件。它们是专门为解决这个问题而设计的。

查看此post 了解详情。

【讨论】:

    猜你喜欢
    • 2014-11-28
    • 2018-08-16
    • 2021-10-20
    • 1970-01-01
    • 2021-12-11
    • 2011-12-24
    • 2011-12-24
    • 2023-03-25
    • 1970-01-01
    相关资源
    最近更新 更多