我在 Spring Boot 和创建我的第一个应用程序方面非常陌生。在创建数据源时,我使用带有前缀和要从 application.property 读取的属性的 @ConfigurationProperties。
但是,此设置似乎对我不起作用,并且我的程序没有运行。
我的 application.property 文件中的属性:
spring.datasource.url=jdbc:h2:file:~/appboot
spring.datasource.username=sa
spring.datasource.password=
spring.datasource.driver-class-name=org.h2.Driver
我的代码:
@Configuration
public class PersistentConfiguration {
@Bean
@ConfigurationProperties(prefix="spring.datasource")
@Primary
public DataSource dataSource() {
return DataSourceBuilder.create().build();
}
}
我知道这@ConfigurationProperties
不是从我的文件中读取属性。如果我在 builder 方法中提供如下详细信息,则效果很好:
return DataSourceBuilder.create()
.url("jdbc:h2:file:~/appboot")
.username("sa")
.password("")
.driverClassName("org.h2.Driver")
.build();
我的 pom.xml 文件有:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.5.RELEASE</version>
</parent>
我的存储库类:
import org.springframework.data.jpa.repository.JpaRepository;
import com.boot.model.Shipwreck;
public interface ShipwreckRepository extends JpaRepository<Shipwreck, Long>{
}
我的主要课程:
@SpringBootApplication
public class App
{
public static void main( String[] args )
{
SpringApplication.run(App.class, args);
}
}
错误:
org.springframework.beans.factory.BeanCreationException:在类路径资源[org/springframework/boot/autoconfigure/flyway/FlywayAutoConfiguration$FlywayConfiguration.class]中定义名称为“flywayInitializer”的bean创建错误:调用init方法失败;嵌套异常是 java.lang.IllegalArgumentException:驱动程序类名称需要 jdbcUrl。在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1699) ~[spring-beans-5.0.9.RELEASE.jar:5.0.9.RELEASE] 在 org.springframework.beans.factory。 support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:573) ~[spring-beans-5.0.9.RELEASE.jar:5.0.9.RELEASE] 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory。IllegalArgumentException:驱动程序类名称需要 jdbcUrl。在 com.zaxxer.hikari.HikariConfig.validate(HikariConfig.java:1059) ~[HikariCP-2.7.9.jar:na] 在 com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:109) ~[HikariCP- 2.7.9.jar:na] 在 org.flywaydb.core.internal.util.jdbc.JdbcUtils.openConnection(JdbcUtils.java:51) ~[flyway-core-5.0.7.jar:na] 在 org.flywaydb。 core.internal.database.DatabaseFactory.createDatabase(DatabaseFactory.java:67) ~[flyway-core-5.0.7.jar:na] at org.flywaydb.core.Flyway.execute(Flyway.java:1634) ~[flyway -core-5.0.7.jar:na] at org.flywaydb.core.Flyway.migrate(Flyway.java:1168) ~[flyway-core-5.0.7.jar:na] at org.springframework.boot.autoconfigure .flyway.FlywayMigrationInitializer.afterPropertiesSet(FlywayMigrationInitializer.java:
如果我还需要提供任何其他信息,请告诉我。