如何使用系统环境变量作为@PropertySource值的一部分?

Cza*_*zar 11 java spring

我想用我的启动程序java ... -Denv=prod ... ,并有

@PropertySource("classpath:/settings/$idontknowwhat$/database.properties")`
Run Code Online (Sandbox Code Playgroud)

读取属性文件: /settings/prod/database.properties

我尝试过使用#{systemProperties['env']}但是没有解决异常:

Could not open ServletContext resource ['classpath:/settings/#{systemProperties['env']}/database.properties]
Run Code Online (Sandbox Code Playgroud)

Cza*_*zar 17

找到它,我可以简单地使用

@PropertySource("classpath:/settings/${env}/database.properties")
Run Code Online (Sandbox Code Playgroud)

  • Maven与这里有什么关系?这是关于Spring根据应用程序启动期间提供的命令行参数解析属性源的信息。 (2认同)