spring-boot - Azure环境变量不起作用: "Factory method ' dataSource' threw exception with message: URL must start with 'jdbc' "

标签 spring-boot azure environment-variables connection-string spring-jdbc

我尝试使用 ${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/

相关文章:

python - 树莓派导入错误: No module named servicebus

linux - 如何确定 systemd EnvironmentFile 将设置的精确环境变量集?

java - 带 POM 封装聚合器的 Spring Boot

java - Spring Boot 根据请求映射获取应用程序属性

azure - 将 Azure 资源移至新订阅 - 从 BizSpark 迁移到 BizSpark Plus

asp.net-mvc-3 - 从 Azure 中的辅助角色部署 Web 角色

java - 使用 Spring Boot 每 10 分钟将数据流式传输到 SQL 数据库

ios - 如何通过 Java(Spring Boot) 使用 FCM 向 iOS 设备发送通知/消息?

eclipse - 设置环境变量启动 mac eclipse

powershell - 从 .ps1 脚本设置环境变量值在 Github Actions 中不起作用