如何解决Spring Boot项目的datasource url属性问题

问题描述 投票:0回答:1

我已启动我的应用程序,但收到此错误:

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
[32m :: Spring Boot :: [39m              [2m (v3.2.1)[0;39m

[2m2024-01-09T10:21:04.750+01:00[0;39m [32m INFO[0;39m [35m8256[0;39m [2m---[0;39m [2m[           main][0;39m [2m[0;39m[36mcom.example.demo.AppApplication         [0;39m [2m:[0;39m Starting AppApplication using Java 17.0.9 with PID 8256 (C:\Users\Admin\Documents\workspace-spring-tool-suite-4\App\target\classes started by Admin in C:\Users\Admin\Documents\workspace-spring-tool-suite-4\App)
[2m2024-01-09T10:21:04.764+01:00[0;39m [32m INFO[0;39m [35m8256[0;39m [2m---[0;39m [2m[           main][0;39m [2m[0;39m[36mcom.example.demo.AppApplication         [0;39m [2m:[0;39m No active profile set, falling back to 1 default profile: "default"
[2m2024-01-09T10:21:07.178+01:00[0;39m [32m INFO[0;39m [35m8256[0;39m [2m---[0;39m [2m[           main][0;39m [2m[0;39m[36m.s.d.r.c.RepositoryConfigurationDelegate[0;39m [2m:[0;39m Bootstrapping Spring Data JPA repositories in DEFAULT mode.
[2m2024-01-09T10:21:07.267+01:00[0;39m [32m INFO[0;39m [35m8256[0;39m [2m---[0;39m [2m[           main][0;39m [2m[0;39m[36m.s.d.r.c.RepositoryConfigurationDelegate[0;39m [2m:[0;39m Finished Spring Data repository scanning in 53 ms. Found 0 JPA repository interfaces.
[2m2024-01-09T10:21:09.237+01:00[0;39m [32m INFO[0;39m [35m8256[0;39m [2m---[0;39m [2m[           main][0;39m [2m[0;39m[36mo.s.b.w.embedded.tomcat.TomcatWebServer [0;39m [2m:[0;39m Tomcat initialized with port 8080 (http)
[2m2024-01-09T10:21:09.294+01:00[0;39m [32m INFO[0;39m [35m8256[0;39m [2m---[0;39m [2m[           main][0;39m [2m[0;39m[36mo.apache.catalina.core.StandardService  [0;39m [2m:[0;39m Starting service [Tomcat]
[2m2024-01-09T10:21:09.296+01:00[0;39m [32m INFO[0;39m [35m8256[0;39m [2m---[0;39m [2m[           main][0;39m [2m[0;39m[36mo.apache.catalina.core.StandardEngine   [0;39m [2m:[0;39m Starting Servlet engine: [Apache Tomcat/10.1.17]
[2m2024-01-09T10:21:09.613+01:00[0;39m [32m INFO[0;39m [35m8256[0;39m [2m---[0;39m [2m[           main][0;39m [2m[0;39m[36mo.a.c.c.C.[Tomcat].[localhost].[/]      [0;39m [2m:[0;39m Initializing Spring embedded WebApplicationContext
[2m2024-01-09T10:21:09.615+01:00[0;39m [32m INFO[0;39m [35m8256[0;39m [2m---[0;39m [2m[           main][0;39m [2m[0;39m[36mw.s.c.ServletWebServerApplicationContext[0;39m [2m:[0;39m Root WebApplicationContext: initialization completed in 4553 ms
[2m2024-01-09T10:21:10.030+01:00[0;39m [33m WARN[0;39m [35m8256[0;39m [2m---[0;39m [2m[           main][0;39m [2m[0;39m[36mConfigServletWebServerApplicationContext[0;39m [2m:[0;39m Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'dataSourceScriptDatabaseInitializer' defined in class path resource [org/springframework/boot/autoconfigure/sql/init/DataSourceInitializationConfiguration.class]: Unsatisfied dependency expressed through method 'dataSourceScriptDatabaseInitializer' parameter 0: Error creating bean with name 'dataSource' defined in class path resource [org/springframework/boot/autoconfigure/jdbc/DataSourceConfiguration$Hikari.class]: Failed to instantiate [com.zaxxer.hikari.HikariDataSource]: Factory method 'dataSource' threw exception with message: Failed to determine a suitable driver class
[2m2024-01-09T10:21:10.043+01:00[0;39m [32m INFO[0;39m [35m8256[0;39m [2m---[0;39m [2m[           main][0;39m [2m[0;39m[36mo.apache.catalina.core.StandardService  [0;39m [2m:[0;39m Stopping service [Tomcat]
[2m2024-01-09T10:21:10.122+01:00[0;39m [32m INFO[0;39m [35m8256[0;39m [2m---[0;39m [2m[           main][0;39m [2m[0;39m[36m.s.b.a.l.ConditionEvaluationReportLogger[0;39m [2m:[0;39m 

Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled.
[2m2024-01-09T10:21:10.197+01:00[0;39m [31mERROR[0;39m [35m8256[0;39m [2m---[0;39m [2m[           main][0;39m [2m[0;39m[36mo.s.b.d.LoggingFailureAnalysisReporter  [0;39m [2m:[0;39m 

***************************
APPLICATION FAILED TO START
***************************

Description:

Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.

Reason: Failed to determine a suitable driver class


Action:

Consider the following:
    If you want an embedded database (H2, HSQL or Derby), please put it on the classpath.
    If you have database settings to be loaded from a particular profile you may need to activate it (no profiles are currently active).

我已经在我的 application.properties 中完成了所有配置

我正在尝试学习如何制作 Spring Boot 应用程序

java spring spring-boot eclipse spring-data-jpa
1个回答
0
投票

正如错误日志中的描述所说:

考虑以下因素: 如果您想要嵌入式数据库(H2、HSQL 或 Derby),请将其放在类路径中。 如果您有要从特定配置文件加载的数据库设置,您可能需要激活它(当前没有活动配置文件)。

选项1

您刚刚开始开发应用程序,并希望尽快启动并运行 - 将内存数据库添加到项目的依赖项中。就像将 H2 Database 添加到

pom.xml
<dependencies>
部分一样:

<dependency>
    <groupId>com.h2database</groupId>
    <artifactId>h2</artifactId>
    <scope>runtime</scope>
</dependency>

此设置无需任何额外配置即可运行。 您满足了描述的要求:请将其放在类路径中

请记住,切勿在生产中以这种方式使用内存数据库。

将外部数据库添加到您的项目

作为更强大的解决方案,请添加外部数据库,例如 PostgreSQL。使用 Maven,将此依赖项添加到您的

<dependencies>
部分:

<dependency>
    <groupId>org.postgresql</groupId>
    <artifactId>postgresql</artifactId>
    <version>42.3.1</version>
</dependency>

使用此设置,您需要在本地或远程安装、配置和运行 PostgreSQL 实例。

如果您有一个工作实例,还剩下一件事:配置您的 Spring 应用程序以连接到 PostgreSQL 实例。

application.properties
中创建或打开您的
src/main/resources
文件并添加以下内容:

spring.datasource.url=jdbc:postgresql://localhost:5432/testdb
spring.datasource.username=postgres-user
spring.datasource.password=postgres-password
spring.jpa.database-platform=org.hibernate.dialect.PostgreSQLDialect

如果

localhost
5432
posgres-user
postgres-password
等默认值与您的设置不同(可能是),请将其替换为实际值。

当然,您不需要使用前面提到的数据库引擎,它们只是示例。进行研究并选择适合您需求的数据库。

© www.soinside.com 2019 - 2024. All rights reserved.