考虑定义一个 'org.flywaydb.core.Flyway' 类型的 bean
Consider defining a bean of type 'org.flywaydb.core.Flyway'
我有一个 Spring 引导项目,其中 Flyway 与 JPA 一起使用。
<dependency>
<groupId>org.flywaydb</groupId>
<artifactId>flyway-core</artifactId>
</dependency>
该项目运行绝对没问题。由于某些要求,我不得不更改 Flyway 加载的顺序,以便它在 Hibernate 之后加载。我搜索并找到了以下解决方案 link 中建议的答案创建了 MigrationConfiguration
。现在,当我 运行 应用程序时,它会给我以下错误,
***************************
APPLICATION FAILED TO START
***************************
Description:
Parameter 0 of method flywayInitializer in
com.x2iq.microservice.config.MigrationConfiguration required a bean of type
'org.flywaydb.core.Flyway' that could not be found.
Action:
Consider defining a bean of type 'org.flywaydb.core.Flyway' in your
configuration.
现在我对 Spring Boot 还很陌生,所以无法理解这个错误,而且我在网上找不到与此错误相关的任何内容。
在 @Configuration
class 中,您可能希望将 Flyway Bean 暴露给容器。这样的事情应该可以解决问题:
@Configuration
public class MigrationConfiguration {
@Bean
public Flyway flyway(){
return new Flyway();
}
}
参考下面link :
Spring flyway bean 已给出配置。
https://flywaydb.org/documentation/api/
我的项目示例:
<bean id="flyway" class="org.flywaydb.core.Flyway" init-method="migrate">
<property name="baselineOnMigrate" value="true" />
<property name="locations" value="classpath:db/migration" />
<property name="dataSource" ref="dataSource" />
</bean>
<bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="${db.driver}"/>
<property name="url" value="${db.url}"/>
<property name="username" value="${db.username}"/>
<property name="password" value="${db.password}"/>
</bean>
我有一个 Spring 引导项目,其中 Flyway 与 JPA 一起使用。
<dependency>
<groupId>org.flywaydb</groupId>
<artifactId>flyway-core</artifactId>
</dependency>
该项目运行绝对没问题。由于某些要求,我不得不更改 Flyway 加载的顺序,以便它在 Hibernate 之后加载。我搜索并找到了以下解决方案 link 中建议的答案创建了
MigrationConfiguration
。现在,当我 运行 应用程序时,它会给我以下错误,
***************************
APPLICATION FAILED TO START
***************************
Description:
Parameter 0 of method flywayInitializer in
com.x2iq.microservice.config.MigrationConfiguration required a bean of type
'org.flywaydb.core.Flyway' that could not be found.
Action:
Consider defining a bean of type 'org.flywaydb.core.Flyway' in your
configuration.
现在我对 Spring Boot 还很陌生,所以无法理解这个错误,而且我在网上找不到与此错误相关的任何内容。
在 @Configuration
class 中,您可能希望将 Flyway Bean 暴露给容器。这样的事情应该可以解决问题:
@Configuration
public class MigrationConfiguration {
@Bean
public Flyway flyway(){
return new Flyway();
}
}
参考下面link :
Spring flyway bean 已给出配置。
https://flywaydb.org/documentation/api/
我的项目示例:
<bean id="flyway" class="org.flywaydb.core.Flyway" init-method="migrate">
<property name="baselineOnMigrate" value="true" />
<property name="locations" value="classpath:db/migration" />
<property name="dataSource" ref="dataSource" />
</bean>
<bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="${db.driver}"/>
<property name="url" value="${db.url}"/>
<property name="username" value="${db.username}"/>
<property name="password" value="${db.password}"/>
</bean>