我是 Spring boot 的新手。我想在数据库创建时添加一些 sql,例如种子数据。
@Value("classpath:com/foo/sql/db-test-data.sql")
private Resource dataScript;
@Bean
public DataSourceInitializer dataSourceInitializer(final DataSource dataSource) {
final DataSourceInitializer initializer = new DataSourceInitializer();
initializer.setDataSource(dataSource);
initializer.setDatabasePopulator(databasePopulator());
return initializer;
}
private DatabasePopulator databasePopulator() {
final ResourceDatabasePopulator populator = new ResourceDatabasePopulator();
populator.addScript(dataScript);
return populator;
}
props.put("hibernate.query.substitutions", "true 1, false 0");
props.put("hibernate.hbm2ddl.auto", "create-drop");
props.put("hibernate.show_sql", "false");
props.put("hibernate.format_sql", "true");
我已经执行了这个操作。但是它在 spring boot 上不起作用。任何人都可以帮助我。
最佳答案
有时 spring-boot
的阻碍多于帮助;恕我直言,对于 Web 应用程序尤其如此。
要解决这个问题,您可以做的是重命名您定义的 bean。
@Bean("springBootPleaseStopTellingMeHowYouThinkDataSourceInitializer")
public DataSourceInitializer dataSourceInitializer(DataSource dataSource) {
// build it.
}
现在,关闭在 application.properties
中查找 data.sql
的内置位
spring.datasource.initialize=false
好了,现在启动已经完成了。
关于mysql - DataSourceInitializer 不适用于 Spring boot 1.2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33123771/