当前位置: 首页 > 知识库问答 >
问题:

Spring配置服务器-resolvePlaceholders+enviroment变量

陆博易
2023-03-14

>

  • src/main/resources/shared/application.yml:

    应用程序:版本:0.0.1-早期测试:${JAVA_HOME}

    src/main/resources/application.属性:

      null
    {
        "name": "apptest",
        "profiles": [
            "application"
        ],
        "label": null,
        "version": null,
        "state": null,
        "propertySources": [
            {
                "name": "classpath:/shared/application.yml",
                "source": {
                    "application.version": "0.0.1-early",
                    "application.test": "${JAVA_HOME}"
                }
            }
        ]
    }
    
    • http://localhost:8888/apptest/application?resolveplaceholders=true
    • http://localhost:8888/lab/apptest-application.properties?resolveplaceholders=true
    • http://localhost:8888/lab/apptest-application.properties?resolveplaceholders=false
    • http://localhost:8888/apptest-application.properties?resolveplaceholders=true

    我查看了Spring cloud config Server。属性中的环境变量,但解决方案并没有帮助我+那里从那以后很少有新的版本。所以我要提出新的问题。

  • 共有1个答案

    郦昆
    2023-03-14

    实际上,这不是一个bug,一切都很好。我不明白配置服务器是如何工作的。

    1. http://localhost:8888/apptest/application-返回尚未解析的值${JAVA_HOME}
    2. 当我们得到EI时。将配置服务ping到容器“C”中进行配置,并执行curl http://Config:8888/apptest/application,我们得到相同的--未解析的${JAVA_HOME}
    3. 但是当我们研究Spring应用程序ei时。在容器“C”中并尝试插入@value(“${application.test}”)的某个地方,我们得到正确的值或未设置env变量的信息。

    这意味着环境变量是在客户端解析的。
    多亏了这一点,我才明白env_variables方法是多么不适合生产。

     类似资料:
    • 我一直在尝试掌握位于此处的spring boot config服务器:https://github.com/spring-cloud/spring-cloud-config在更彻底地阅读了文档之后,我能够解决我的大部分问题。然而,我不得不为基于文件的PropertySourceLocator编写一个额外的类 然后我将其添加到ConfigServiceBootstrapConfiguration.j

    • 我正在使用Spring Cloud Config服务器,能够检测来自git存储库的更改并将其传递给配置客户机。 有两种方法,我已经实现了: null 所以两者都工作得很好,那么使用Spring Cloud Bus有什么好处吗?或者在生产环境中,不使用Spring Cloud Bus会有什么问题吗?因为将需要额外的工作来设置RabbitMQ集群(HA)作为生产中的Spring云总线。 谢谢,大卫

    • 我这样配置Spring Cloud Config服务器: 由于某些原因,resolvePlaceholders不适用于JSON表示,因此服务器配置客户机需要知道服务器上配置的所有ENV变量。 是否可以强制JSON表示resolvePlaceholders与纯文本(属性)表示相同?

    • 我们来看看如何配置服务器端的 SSH 访问。 本例中,我们将使用 authorized_keys 方法来对用户进行认证。 同时我们假设你使用的操作系统是标准的 Linux 发行版,比如 Ubuntu。 首先,创建一个操作系统用户 git,并为其建立一个 .ssh 目录。 $ sudo adduser git $ su git $ cd $ mkdir .ssh && chmod 700 .ssh

    • 服务器配置 当你需要一台服务器的时候,首先需要向你的leader 提出申请,你的 leader 会利用公司的阿里云账户购买服务器实例,并且会把服务器的公网IP以及账号密码发送给你。 以下章节就叙述了当拿到一台全新的阿里云服务器实例时,我们需要怎样的工具以及我们需要经历哪些步骤对服务器进行配置。

    • 我部署了SpringCloudConfigServer,通过ssh连接到git存储库。 我已经将ssh密钥(id_rsa.pub)添加到Git stash中。我还添加了/。带有StrictHostKeyChecking无选项的ssh/config文件。但当我访问配置服务器时,仍然会出现此错误。 通用域名格式。jcraft。jsch。JSchException:UnknownHostKey:stas