Spring 启动无法从我的文件系统中获取配置文件
Spring boot is not able to get configuration file from my file system
我正在尝试在 Spring 引导和 spring 云上构建示例应用程序。
我已经在位于桌面的 config.properties 属性 文件中编写了我的数据库和休眠配置,我希望我的 spring 启动使用这个配置。
我的项目有 3 个模块
- API
- 数据层
- 服务层
这是我在 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
我正在尝试在 Spring 引导和 spring 云上构建示例应用程序。 我已经在位于桌面的 config.properties 属性 文件中编写了我的数据库和休眠配置,我希望我的 spring 启动使用这个配置。
我的项目有 3 个模块
- API
- 数据层
- 服务层
这是我在 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