我尝试使用 ${VARIABLE_NAME} 在 application.properties 上设置环境变量,然后在 azure 配置中设置键值对。但这似乎不起作用。我还尝试在应用程序启动之前运行 System.getenv,但这并没有多大作用。因此,我不断收到 URL 必须以 jdbc 开头的错误,因为它没有使用我设置的 env 变量。
下面的行来自 application.properties:
spring.datasource.url=${DB_CONNECTION_STRING}
在 azure 中,我在配置部分设置了应用程序设置 对于具有 jdbc 值的 DB_CONNECTION_STRING...
然后我什至尝试将其设置为 azure 配置中的连接字符串 带有“SQLAZURECONNSTR”前缀,但仍然不起作用。
然后我什至在 main 之前尝试过这个:
String dbConnectionString = System.getenv("DB_CONNECTION_STRING");
不确定这是否有任何作用。
最佳答案
I also tried running System.getenv before the application starts, but that didn't do much.
我尝试在我的环境中使用 System.getenv()
方法进行重现,它按预期工作并且可以达到预期结果。
要访问代码中的环境变量,请在“应用服务”->“设置”->“配置”中创建一个变量并分配其值,如下所示:
下面是我的示例 Controller 类的代码片段,用于获取指定的环境变量:
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class AzureAppController {
@GetMapping(value = "/my-var")
public String getMyVar() {
return "The value of MY_VAR is: " + System.getenv("MY_VAR");
}
}
回应:
设置环境变量之前:
设置环境变量后:
关于spring-boot - Azure环境变量不起作用: "Factory method ' dataSource' threw exception with message: URL must start with 'jdbc' ",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76244188/