繁体   English   中英

无法使用 spring-cloud-config-server 从本地 git 存储库读取配置

[英]Unable to read configurations from local git repository using spring-cloud-config-server

我正在使用 spring 启动 2.4.5 并尝试配置 spring 云服务器以从本地 git 存储库读取属性文件。 以下链接用于服务启动和 spring 云服务器启动日志,

限制服务: https://drive.google.com/file/d/1U6o2UzdHDquyzsyUv0Im3h0RqbFXaCJG/view?usp=sharing

弹簧云配置服务器: https://drive.google.com/file/d/1A5J0S7sZRMQfeb2Hv94slgt4o5xtjsEo/view?usp=sharing

完成所有配置后,URL、 http://localhost:8888/limits-service/default返回 404,如下所示,

Whitelabel 错误页面 此应用程序没有针对 /error 的显式映射,因此您将其视为后备。

IST 2021 年 5 月 20 日星期四 14:07:14 出现意外错误(类型=未找到,状态=404)。 没有可用的消息

代码组件:

Class 限制:

package com.home.microservices.limitsservice.bean;


public class Limits {

  private int minimum;
  private int maximum;

  public Limits() {
    super();
  }

  public Limits(int minimum, int maximum) {
    super();
    this.minimum = minimum;
    this.maximum = maximum;
  }

  public int getMinimum() {
    return minimum;
  }

  public void setMinimum(int minimum) {
    this.minimum = minimum;
  }

  public int getMaximum() {
    return maximum;
  }

  public void setMaximum(int maximum) {
    this.maximum = maximum;
  }

  @Override
  public String toString() {
    return "Limits [minimum=" + minimum + ", maximum=" + maximum + "]";
  }
}

Controller:

package com.home.microservices.limitsservice.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import com.home.microservices.limitsservice.bean.Limits;
import com.home.microservices.limitsservice.Configuration;

@RestController
public class LimitsController {

  @Autowired
  private Configuration configuration;

  @GetMapping("/limits")
  public Limits retrieveLimits() {
    return new Limits(configuration.getMinimum(), configuration.getMaximum());
  }
}

配置:

@Component
@ConfigurationProperties("limits-service")
public class Configuration {

  private int minimum;
  private int maximum;
  
  public int getMinimum() {
    return minimum;
  }

  public void setMinimum(int minimum) {
    this.minimum = minimum;
  }

  public int getMaximum() {
    return maximum;
  }

  public void setMaximum(int maximum) {
    this.maximum = maximum;
  }
}

application.properties(限制服务):

logging.level.org.springframework = debug
spring.application.name=limits-service
spring.config.import=optional:configserver:http://localhost:8888
limits-service.minimum=3
limits-service.maximum=997

pom.xml 依赖项(限制服务):

<dependencies>
  <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
  </dependency>
  <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
  </dependency>
  <dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-config</artifactId>
  </dependency>
  <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-devtools</artifactId>
    <scope>runtime</scope>
    <optional>true</optional>
  </dependency>
  <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    <scope>test</scope>
  </dependency>
</dependencies>
class SpringCloudConfigServerApplication:

@EnableConfigServer
@SpringBootApplication
public class SpringCloudConfigServerApplication {

  public static void main(String[] args) {
    SpringApplication.run(SpringCloudConfigServerApplication.class, args);
  }
}

application.properties(spring-cloud-config-server):

logging.level.org.springframework = debug
spring.application.name=spring-cloud-config-server
server.port=8888
spring.cloud.config.server.git.uri=file:///D:/Learning/Microservices/git-localconfig-repo
spring.cloud.config.import-check.enabled=false

pom.xml 依赖项(spring-cloud-config-server):

<dependencies>
  <dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-config-server</artifactId>
  </dependency>

  <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-devtools</artifactId>
    <scope>runtime</scope>
    <optional>true</optional>
  </dependency>
  <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    <scope>test</scope>
   </dependency>
</dependencies>

Git repo 目录位置(我使用 Windows):

D:\Learning\Microservices\git-localconfig-repo\limits-service.properties

您阅读 application.properties 文件添加组件字段@value

 @Component
 @PropertySource("file:D:\Learning\Microservices\git-localconfig- 
 repo\application.properties")
 @ConfigurationProperties(prefix="limits-service")
 public class Configuration {

 @Value("${minimum}")
 private int minimum;
 @Value("${maximum}")
 private int maximum;

 public int getMinimum() {
 return minimum;
 }

 public void setMinimum(int minimum) {
 this.minimum = minimum;
 }

 public int getMaximum() {
 return maximum;
 }

 public void setMaximum(int maximum) {
  this.maximum = maximum;
  }
 } 

此文件 application.properties

logging.level.org.springframework = debug
spring.application.name=limits-service
spring.config.import=optional:configserver:http://localhost:8888
limits-service.minimum=3
limits-service.maximum=997

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM