如何通过 Spring 引导加载 MongoDB 中的初始数据?
How can you load initial data in MongoDB through Spring Boot?
是否可以使用 src/main/resources/data.sql
或任何其他文件在 MongoDB
数据库中加载初始数据?
我知道 data.sql
用于 SQL
数据库,而 MongoDB
是 NOSQL
数据库。但只是想知道 NOSQL
数据库是否有 data.sql
的等价物。
在谷歌搜索时我发现了这个 SO link (Spring Boot - Loading Initial Data) 可以满足我的要求,但它仍然不是独立文件 data.sql
。
要加载初始数据,您可以使用 MongoBee
等数据库迁移工具
在 java 中处理数据初始化是非常有用的选项。您只需在 spring 启动和设置组件扫描中配置 @Bean public Mongobee mongobee
以查找实际发生数据创建的数据 ChangeLogs。
您可以在 json/xml 中定义数据并使用存储库的填充器元素加载数据。
您可以将存储库填充器与 Spring 数据 MongoDB 一起使用。让我用 Kotlin 中的代码示例来证明这一点:
@Configuration
class TestApplicationConfig {
@Value("classpath:test_data.json")
private lateinit var testData: Resource
@Bean
@Autowired
fun repositoryPopulator(objectMapper: ObjectMapper): Jackson2RepositoryPopulatorFactoryBean {
val factory = Jackson2RepositoryPopulatorFactoryBean()
// inject your Jackson Object Mapper if you need to customize it:
factory.setMapper(objectMapper)
factory.setResources(arrayOf(testData))
return factory
}
}
将test_data.json
放入资源目录。
是否可以使用 src/main/resources/data.sql
或任何其他文件在 MongoDB
数据库中加载初始数据?
我知道 data.sql
用于 SQL
数据库,而 MongoDB
是 NOSQL
数据库。但只是想知道 NOSQL
数据库是否有 data.sql
的等价物。
在谷歌搜索时我发现了这个 SO link (Spring Boot - Loading Initial Data) 可以满足我的要求,但它仍然不是独立文件 data.sql
。
要加载初始数据,您可以使用 MongoBee
等数据库迁移工具在 java 中处理数据初始化是非常有用的选项。您只需在 spring 启动和设置组件扫描中配置 @Bean public Mongobee mongobee
以查找实际发生数据创建的数据 ChangeLogs。
您可以在 json/xml 中定义数据并使用存储库的填充器元素加载数据。
您可以将存储库填充器与 Spring 数据 MongoDB 一起使用。让我用 Kotlin 中的代码示例来证明这一点:
@Configuration
class TestApplicationConfig {
@Value("classpath:test_data.json")
private lateinit var testData: Resource
@Bean
@Autowired
fun repositoryPopulator(objectMapper: ObjectMapper): Jackson2RepositoryPopulatorFactoryBean {
val factory = Jackson2RepositoryPopulatorFactoryBean()
// inject your Jackson Object Mapper if you need to customize it:
factory.setMapper(objectMapper)
factory.setResources(arrayOf(testData))
return factory
}
}
将test_data.json
放入资源目录。