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

云客户端配置应用程序无法从配置服务器Spring boot获取属性

祁远
2023-03-14

我有一个web应用程序,我想使用Spring Boot的服务器配置。这两个应用程序都位于本地主机上。我从头开始创建了前两个应用程序,它们一起工作,但当我使用具有许多依赖项(不仅仅是云配置和web依赖项)的客户端时,它就不再工作了。我怎么知道?我在服务器的属性文件中有一个变量,我试图在我的客户机中用@Value(“${atena}”)来使用它,错误出现在java中。lang.IllegalArgumentException:无法解析值“${atena}”中的占位符“atena”。

服务器的主类具有以下注释@EnableConfigServer

atena-config.yml我只有变量名:

 atena: 'Hellllloooooo'

bootstrap.yml内容

server:
  port: 9000
spring:
  profiles:
    active: native

并构建。渐变依赖项:

dependencies {

    implementation 'org.springframework.cloud:spring-cloud-config-server'
    runtimeOnly 'org.springframework.boot:spring-boot-devtools'
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

我确信服务器是正确的,我的客户端有问题。

--------------------

我有一个restcontroller:

@RestController
@RequestMapping("/songs")
    public class SongController {

    @Value("${atena}")
    String variable;

    @GetMapping(value="/check-from")
    public String viewVariable(){
        return variable;
    }
}

其中我试图从服务器配置中获取变量。

独自创立来自客户的yml

spring:
  application:
     name: atena-config
   cloud:
     config:
       uri: http://localhost:9000

最后是构建。来自客户的梯度:

    plugins {
    id 'org.springframework.boot' version '2.1.3.RELEASE'
    id 'java'
 }

apply plugin: 'io.spring.dependency-management'

group = 'com'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '1.8'

repositories {
    mavenCentral()
}

dependencies {

    compile 'com.google.apis:google-api-services-youtube:v3-rev206-1.25.0'


    implementation 'org.springframework.boot:spring-boot-starter'
    implementation('org.apache.tomcat:tomcat-jdbc:9.0.10')

    implementation 'org.springframework.boot:spring-boot-starter-web'
    implementation('org.mybatis:mybatis:3.4.6')
    implementation('org.mybatis:mybatis-spring:1.3.2')

    implementation('org.springframework.boot:spring-boot-starter-jdbc')

    implementation('org.springframework.cloud:spring-cloud-starter-config')
    compile group: 'org.postgresql', name: 'postgresql', version: '42.2.5'
    runtimeOnly 'org.springframework.boot:spring-boot-devtools'
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

我真的不知道发生了什么,我很确定这些依赖项是问题所在,但是我还没有弄清楚是哪一个,我不能排除它们中的任何一个,因为我正在项目中使用它们。

共有1个答案

商正浩
2023-03-14

没关系。我已经修复了它。事实上,问题来自我的依赖项,我的gradle.build有问题。我已经创建了一个新项目,Spring初始化程序具有所有的依赖项,并从那里复制了新的gradle.build,现在它可以工作了。

这是新版本。来自客户的gradle

plugins {
    id 'org.springframework.boot' version '2.1.3.RELEASE'
    id 'java'
}

apply plugin: 'io.spring.dependency-management'

group = 'com'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '1.8'

repositories {
    mavenCentral()
    maven { url 'https://repo.spring.io/milestone' }
}
ext {
    set('springCloudVersion', 'Greenwich.RELEASE')
}

dependencies {

    compile 'com.google.apis:google-api-services-youtube:v3-rev206-1.25.0'

    implementation 'org.springframework.boot:spring-boot-starter-web'
    implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:2.0.0'
    implementation 'org.springframework.cloud:spring-cloud-starter-config'
    runtimeOnly 'org.springframework.boot:spring-boot-devtools'
    runtimeOnly 'org.postgresql:postgresql'
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

dependencyManagement {
    imports {
        mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}"
    }
}
 类似资料:
  • 我是Spring Cloud的新手,我正在尝试使用存储在github上的属性文件连接服务器和客户端。 我的服务器应用程序。yml文件的配置如下: github回购协议链接在这里,主要属性和替代属性 我的客户端应用程序具有以下设置 Rest控制器是: 所有${变量}van都可以在位于git存储库中的属性文件中找到。 服务器运行正常,但是客户端给了我以下错误 创建名为“rateController”的

  • 当我运行Spring Cloud Config Client项目config-client时,我发现了以下错误: 启动ApplicationContext时出错。若要显示自动配置报告,请在启用“debug”的情况下重新运行应用程序。2018-02-09 10:31:10.923错误13933--[main]O.S.Boot.SpringApplication:应用程序启动失败 显然,配置服务器是错

  • 错误: > 连客户端都没有启动 http://localhost:8080/ 将spring.config.import=configServer:属性添加到您的配置中。如果不需要配置,则添加spring.config.import=optional:configserver:。要禁用此检查,请设置spring.cloud.config.enabled=false或spring.cloud.con

  • 在这里,我使用rancher和docker compose来初始化spring cloud config客户端和服务器,但当spring cloud config server未就绪时,客户端启动失败,需要在服务器就绪时重新启动。我想问,当服务器准备就绪时,是否有任何机制可以让SpringCloudConfig客户端重新加载或重新启动?

  • 还有什么方法可以让spring cloud配置客户端的应用程序。yml从spring配置服务器读取值?例如,在我的spring cloud config客户端上,应用程序。yml就是这样 还有我的引导程序。yml文件如下所示 对于服务url值,对于不同的环境,我必须配置不同的eureka url值,我的问题是,我是否可以在配置服务器中配置服务url值?就像我在应用程序中将值设置为${service

  • 我的Spring云配置服务器在尝试使用http://localhost:8080/application/default访问属性文件内容时抛出以下错误 我的申请。配置服务器中的属性如下所示 <代码>Spring。云配置。服务器吉特。uri=/Users/joe/MyProgs/Java/spring ws/config,我甚至尝试了这个spring。云配置。服务器吉特。uri=${HOME}/My