Spring 启动无法从我的文件系统中获取配置文件

Spring boot is not able to get configuration file from my file system

我正在尝试在 Spring 引导和 spring 云上构建示例应用程序。 我已经在位于桌面的 config.properties 属性 文件中编写了我的数据库和休眠配置,我希望我的 spring 启动使用这个配置。

我的项目有 3 个模块

这是我在 API

的 application.property 文件中提到的代码

spring.profiles.active=母语 spring.cloud.config.server.native.searchLocation=C:/Users/DEV/Desktop/configuration/config.properties

DataLayer和ServiceLayer的属性文件为空

但是当我 运行 API 我得到以下错误

***************************
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).


Process finished with exit code 1

谁能帮我解决这个错误。

提前致谢。

您必须将 file: 作为 属性 文件位置的前缀。

文档来自 https://cloud.spring.io/spring-cloud-config/multi/multi__spring_cloud_config_server.html

配置服务器中还有一个“本机”配置文件,它不使用 Git 但从本地类路径或文件系统加载配置文件(您要指向的任何静态 URL与 spring.cloud.config.server.native.searchLocations)。要使用本机配置文件,请使用 spring.profiles.active=native.

启动配置服务器
  • [注] 记得对文件资源使用file:前缀(没有前缀的默认通常是类路径)。与任何 Spring 启动一样 配置,你可以嵌入 ${} 风格的环境占位符,但是 请记住 Windows 中的绝对路径需要一个额外的 / (对于 例如,file:///${user.home}/config-repo).
  • [警告] searchLocations 的默认值与本地 Spring 启动应用程序(即 [classpath:/, classpath:/config, 文件:./,文件:./config])。这不会暴露 application.properties 从服务器到所有客户端,因为任何 属性 存在于服务器中的资源在发送前被移除 给客户。
  • [提示] 文件系统后端非常适合快速入门和测试。要在生产中使用它,您需要确保 文件系统是可靠的,并在配置的所有实例之间共享 服务器.

这无法通过您的 API 模块完成。您将配置服务器属性添加到 'client'(从配置的角度来看)应用程序。

如果您想使用 Spring Cloud Config 配置您的项目,您应该有单独的应用程序来管理您的配置。我们称它为 config-server。 (您应该正确配置 Maven 或 gradle 依赖项,请参阅文档)要在 application.properties 中的 config-server 中配置 native 配置文件的使用,您必须添加您在问题(native 个人资料的示例)。

spring.profiles.active=native
spring.cloud.config.server.native.searchLocation=file:<path-to-the-directory-with-conf-files> or classpath:/<path-to-the-directory-with-conf-files>

注意:config-server可以处理很多服务的配置。 可以在文档 Spring Cloud Config Server section.

中找到更多内容

然后在你的 API(或任何其他模块)中,这是一个 spring 引导应用程序,你应该添加 spring-cloud-config-client 依赖项并添加 bootstrap.properties(或 .yml)配置文件。您应该在其中添加描述与 config-server 通信的属性。默认情况下 config-server 侦听端口 8888。

spring.application.name=<your app name>    
spring.cloud.config.uri=http://localhost:8888 # this is also default value for this property

在启动时,它将通过 http 转到 config-server 并根据服务名称 (spring.application.name) 获取您的配置属性。 更多可以在 Spring Cloud Config client section

中找到

重要提示:确保在配置目录中正确组织文件(config-server native 配置文件使用该目录),找到一些示例。 属性 文件命名很重要。首先,您可以尝试使用 your-application-name.properties