首先,我知道如果我可以设置系统或环境变量,这会容易得多。不幸的是,这不是一个选择,我正在尝试解决这个问题。
我需要在外部化属性文件中定义我的活动配置文件,但这不起作用。这是我所拥有的:
application.properties(在类路径上):
spring.config.location=file:/appname/appname.properties
应用程序名称.属性
spring.profiles.active=dev
应用程序-dev.properties:
(rest of properties, including datasource definition)
不幸的是,应用程序无法部署,并表示当前没有活动的配置文件:
***************************
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).
我再次意识到这不是执行此操作的最佳方法,但设置系统或环境变量是不行的,原因我不想讨论。这是解决这个问题的尝试。
对我来说,将
spring.config.location
中的 spring.config.import
替换为 application.properties
:
spring:
config:
import: classpath:appname.yaml