我正在尝试将FF4J集成到我的spring应用程序项目中,但是看起来驱动程序或FF4J存在一些问题,而且数据库模式没有创建。
我的配置文件:
@Configuration
@ConditionalOnClass(FF4j::class)
class FF4JConfiguration {
@field:Value("\${spring.ff4j.datasource.url}")
private lateinit var driverUrl: String
@field:Value("\${spring.datasource.driver-class-name}")
private lateinit var driverClass: String
@field:Value("\${spring.datasource.username}")
private lateinit var user: String
@field:Value("\${spring.datasource.password}")
private lateinit var password: String
@Bean
fun getFF4j(): FF4j {
val source = MysqlDataSource()
source.setURL(driverUrl)
source.password = password
source.user = user
val fF4j = FF4j()
fF4j.featureStore = FeatureStoreSpringJdbc().apply { setDataSource(source) }
fF4j.propertiesStore = PropertyStoreSpringJdbc().apply { setDataSource(source) }
fF4j.eventRepository = JdbcEventRepository(source)
fF4j.audit(true)
fF4j.autoCreate(true)
return fF4j
}
}当我调试时,数据源是这样的:

但是我确实得到了这个BadSqlGrammarException,我不知道为什么它不能在数据库中为我创建SQL表。服务器正在运行,数据库也正常,因为我还有其他表。
我的build.gradle.kts
implementation("org.ff4j:ff4j-core:1.8.12")
implementation("org.ff4j:ff4j-web:1.8.12")
implementation("org.ff4j:ff4j-store-springjdbc:1.8.12")
implementation("mysql:mysql-connector-java:8.0.30")知道为什么会这样吗?
发布于 2022-09-20 09:36:02
这很好。FF4J不会自动为您创建架构。你必须通过这样做来自己创造它:
fF4j.featureStore = JdbcFeatureStore().apply {
dataSource = source
createSchema()
}
fF4j.propertiesStore = JdbcPropertyStore().apply {
dataSource = source
createSchema()
}
fF4j.eventRepository = JdbcEventRepository(source).apply { createSchema() }你就可以走了。您得到的异常很可能是因为ff4j_features表不存在。现在,它将创建模式,所有表和特性都应该正常工作。
https://stackoverflow.com/questions/73756012
复制相似问题