我对Spring和Spring Boot比较陌生,但我似乎无法找到如何使用Spring Boot,Flyway和Spring Boot JPA创建应用程序的指南,它将实际运行在我的机器上。我总是遇到同样的问题:
Error creating bean with name 'flywayInitializer' defined in class path resource [org/springframework/boot/autoconfigure/flyway/FlywayAutoConfiguration$FlywayConfiguration.class]: Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: dataSource or dataSourceClassName or jdbcUrl is required.
我正在尝试通过application.properties文件完全配置HikariCP,但我似乎无法找到方法。任何帮助都非常适合。
我的完整堆栈跟踪以及相关的Java代码和application.properties文件都在这个要点中:
https://gist.github.com/anonymous/cb309a836ddae36f5e401697f763dde5
答案 0 :(得分:2)
删除不需要的PersistenceConfiguration
课程。 Spring Boot为您和flyway自动配置数据源以供使用。
HikariCP现在是spring boot 2中的默认池实现。
还从application.properties中删除除spring.datasource.url
以外的所有与数据源相关的属性。
答案 1 :(得分:1)
您可以更新application.properties以使用
spring.datasource.jdbc-url=...
datasource.flyway.jdbc-url=...
代替
.url=
我也在遵循Pluralsight课程构建您的第一个Spring Boot应用程序
我在另一个StackOverflow post中找到了答案。 Spring Boot 2将默认的JDBC连接池从Tomcat更改为HikariCP,以提高性能。 HikariCP需要不同的属性。
在本教程中,多个数据源是可选的,这就是为什么在删除PersistenceConfiguration.java时它可以工作的原因