Java 无法从Spring云配置服务器获取值到我的配置客户端(限制服务)

Java 无法从Spring云配置服务器获取值到我的配置客户端(限制服务),java,spring-boot,github,spring-cloud,spring-cloud-config,Java,Spring Boot,Github,Spring Cloud,Spring Cloud Config,经过几天的互联网搜索和多次尝试(没有任何结果),我在这里写作 我有一个Project-spring云配置服务器,它有以下文件(可以从中访问完整的项目) SpringCloudConfigServerApplication.java application.properties(在文件夹-资源下) 链接源文件夹-git config repo,它限制了服务的属性文件 pom.xml 和客户端配置项目-限制具有以下文件的服务(可从访问完整项目) LimitsServiceApplication

经过几天的互联网搜索和多次尝试(没有任何结果),我在这里写作

我有一个Project-spring云配置服务器,它有以下文件(可以从中访问完整的项目)

  • SpringCloudConfigServerApplication.java
  • application.properties(在文件夹-资源下)
  • 链接源文件夹-git config repo,它限制了服务的属性文件
  • pom.xml
和客户端配置项目-限制具有以下文件的服务(可从访问完整项目)

  • LimitsServiceApplication.java
  • LimitConfiguration.java
  • Configuration.java
  • LimitsConfiguration Controller.java
  • bootstrap.properties(在文件夹-资源下)
  • pom.xml
此外——

Project-SpringCloudConfigServer工作正常,具有以下输出

// http://localhost:8888/limits-service/default

{
  "name": "limits-service",
  "profiles": [
    "default"
  ],
  "label": null,
  "version": "8dd340030a5c82a11327bf0d2e55ae3b6434240b",
  "state": null,
  "propertySources": [
    {
      "name": "file:///D:/Learn-Java/springboot-workspace/git-config-repo//limits-service.properties",
      "source": {
        "limits-service.minimum": "11",
        "limits-service.maximum": "99"
      }
    }
  ]
}

但是当运行Project-limits服务时,我有以下输出。无法从spring云配置服务器获取数据

// http://localhost:8080/limits

{
  "minimum": null,
  "maximum": null
}

以下是项目方面的文件

spring云配置服务器

SpringCloudConfigServerApplication.java

@EnableConfigServer
@SpringBootApplication
public class SpringCloudConfigServerApplication {

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

}

@SpringBootApplication
public class LimitsServiceApplication {

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

}
@Component
public class LimitConfiguration {

    private String minimun;
    private String maximun;
    
    public LimitConfiguration() {
        super();
    }
    
    public LimitConfiguration(String minimun, String maximun) {
        super();
        this.minimun = minimun;
        this.maximun = maximun;
    }

    public String getMinimun() {
        return minimun;
    }

    public void setMinimun(String minimun) {
        this.minimun = minimun;
    }

    public String getMaximun() {
        return maximun;
    }

    public void setMaximun(String maximun) {
        this.maximun = maximun;
    }

    @Override
    public String toString() {
        return "LimitConfiguration [minimun=" + minimun + ", maximun=" + maximun + "]";
    }

}
@Component
@ConfigurationProperties("limits-service")
public class Configuration {
    
    private String minimum;
    private String maximum;
    
    public String getMinimum() {
        return minimum;
    }
    public void setMinimum(String minimum) {
        this.minimum = minimum;
    }
    public String getMaximum() {
        return maximum;
    }
    public void setMaximum(String maximum) {
        this.maximum = maximum;
    }
    
}
应用程序属性

spring.application.name=spring-cloud-config-server
server.port=8888
spring.cloud.config.server.git.uri=file:///D:/Learn-Java/springboot-workspace/git-config-repo/
limits-service.minimum=11
limits-service.maximum=99
spring.application.name=limits-service
spring.cloud.config.uri=http://localhost:8888
spring.cloud.config.enabled=true
spring云配置服务器/pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.4.0-M4</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.springboot.microservices</groupId>
    <artifactId>spring-cloud-config-server</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>spring-cloud-config-server</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>1.8</java.version>
        <spring-cloud.version>2020.0.0-SNAPSHOT</spring-cloud.version>
    </properties>

    <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>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

    <repositories>
        <repository>
            <id>spring-milestones</id>
            <name>Spring Milestones</name>
            <url>https://repo.spring.io/milestone</url>
        </repository>
        <repository>
            <id>spring-snapshots</id>
            <name>Spring Snapshots</name>
            <url>https://repo.spring.io/snapshot</url>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>
    </repositories>
    <pluginRepositories>
        <pluginRepository>
            <id>spring-milestones</id>
            <name>Spring Milestones</name>
            <url>https://repo.spring.io/milestone</url>
        </pluginRepository>
    </pluginRepositories>

</project>

限制服务

LimitsServiceApplication.java

@EnableConfigServer
@SpringBootApplication
public class SpringCloudConfigServerApplication {

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

}

@SpringBootApplication
public class LimitsServiceApplication {

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

}
@Component
public class LimitConfiguration {

    private String minimun;
    private String maximun;
    
    public LimitConfiguration() {
        super();
    }
    
    public LimitConfiguration(String minimun, String maximun) {
        super();
        this.minimun = minimun;
        this.maximun = maximun;
    }

    public String getMinimun() {
        return minimun;
    }

    public void setMinimun(String minimun) {
        this.minimun = minimun;
    }

    public String getMaximun() {
        return maximun;
    }

    public void setMaximun(String maximun) {
        this.maximun = maximun;
    }

    @Override
    public String toString() {
        return "LimitConfiguration [minimun=" + minimun + ", maximun=" + maximun + "]";
    }

}
@Component
@ConfigurationProperties("limits-service")
public class Configuration {
    
    private String minimum;
    private String maximum;
    
    public String getMinimum() {
        return minimum;
    }
    public void setMinimum(String minimum) {
        this.minimum = minimum;
    }
    public String getMaximum() {
        return maximum;
    }
    public void setMaximum(String maximum) {
        this.maximum = maximum;
    }
    
}
LimitConfiguration.java

@EnableConfigServer
@SpringBootApplication
public class SpringCloudConfigServerApplication {

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

}

@SpringBootApplication
public class LimitsServiceApplication {

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

}
@Component
public class LimitConfiguration {

    private String minimun;
    private String maximun;
    
    public LimitConfiguration() {
        super();
    }
    
    public LimitConfiguration(String minimun, String maximun) {
        super();
        this.minimun = minimun;
        this.maximun = maximun;
    }

    public String getMinimun() {
        return minimun;
    }

    public void setMinimun(String minimun) {
        this.minimun = minimun;
    }

    public String getMaximun() {
        return maximun;
    }

    public void setMaximun(String maximun) {
        this.maximun = maximun;
    }

    @Override
    public String toString() {
        return "LimitConfiguration [minimun=" + minimun + ", maximun=" + maximun + "]";
    }

}
@Component
@ConfigurationProperties("limits-service")
public class Configuration {
    
    private String minimum;
    private String maximum;
    
    public String getMinimum() {
        return minimum;
    }
    public void setMinimum(String minimum) {
        this.minimum = minimum;
    }
    public String getMaximum() {
        return maximum;
    }
    public void setMaximum(String maximum) {
        this.maximum = maximum;
    }
    
}
Configuration.java

@EnableConfigServer
@SpringBootApplication
public class SpringCloudConfigServerApplication {

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

}

@SpringBootApplication
public class LimitsServiceApplication {

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

}
@Component
public class LimitConfiguration {

    private String minimun;
    private String maximun;
    
    public LimitConfiguration() {
        super();
    }
    
    public LimitConfiguration(String minimun, String maximun) {
        super();
        this.minimun = minimun;
        this.maximun = maximun;
    }

    public String getMinimun() {
        return minimun;
    }

    public void setMinimun(String minimun) {
        this.minimun = minimun;
    }

    public String getMaximun() {
        return maximun;
    }

    public void setMaximun(String maximun) {
        this.maximun = maximun;
    }

    @Override
    public String toString() {
        return "LimitConfiguration [minimun=" + minimun + ", maximun=" + maximun + "]";
    }

}
@Component
@ConfigurationProperties("limits-service")
public class Configuration {
    
    private String minimum;
    private String maximum;
    
    public String getMinimum() {
        return minimum;
    }
    public void setMinimum(String minimum) {
        this.minimum = minimum;
    }
    public String getMaximum() {
        return maximum;
    }
    public void setMaximum(String maximum) {
        this.maximum = maximum;
    }
    
}
LimitsConfiguration Controller.java

@RestController
public class LimitsConfigurationController {
    
    @Autowired
    private Configuration configuration;
    
    @GetMapping(path="/limits")
    public LimitConfiguration retrieveLimitsFromConfiguration() {
        
        return new LimitConfiguration(configuration.getMinimum(), configuration.getMaximum());
    }

}
bootstrap.properties

spring.application.name=spring-cloud-config-server
server.port=8888
spring.cloud.config.server.git.uri=file:///D:/Learn-Java/springboot-workspace/git-config-repo/
limits-service.minimum=11
limits-service.maximum=99
spring.application.name=limits-service
spring.cloud.config.uri=http://localhost:8888
spring.cloud.config.enabled=true
限制服务/pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.4.0-M4</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.springboot.microservices</groupId>
    <artifactId>limits-service</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>limits-service</name>
    <description>Build microservices with spring cloud</description>

    <properties>
        <java.version>1.8</java.version>
        <spring-cloud.version>2020.0.0-SNAPSHOT</spring-cloud.version>
    </properties>

    <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>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <optional>true</optional>
        </dependency>
    </dependencies>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

    <repositories>
        <repository>
            <id>spring-milestones</id>
            <name>Spring Milestones</name>
            <url>https://repo.spring.io/milestone</url>
        </repository>
        <repository>
            <id>spring-snapshots</id>
            <name>Spring Snapshots</name>
            <url>https://repo.spring.io/snapshot</url>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>
    </repositories>
    <pluginRepositories>
        <pluginRepository>
            <id>spring-milestones</id>
            <name>Spring Milestones</name>
            <url>https://repo.spring.io/milestone</url>
        </pluginRepository>
    </pluginRepositories>

</project>

4.0.0
org.springframework.boot
spring启动程序父级
2.4.0-M4
com.springboot.microservices
限制服务
0.0.1-快照
限制服务
使用spring云构建微服务
1.8
2020.0.0-2009
org.springframework.boot
弹簧靴起动器执行器
org.springframework.boot
SpringBootStarterWeb
org.springframework.cloud
SpringCloudStarter配置
org.springframework.boot
弹簧靴开发工具
运行时
真的
org.springframework.boot
弹簧起动试验
测试
org.springframework.boot
spring引导配置处理器
真的
org.springframework.cloud
spring云依赖关系
${spring cloud.version}
聚甲醛
进口
org.springframework.boot
springbootmaven插件
春季里程碑
春季里程碑
https://repo.spring.io/milestone
春季快照
春季快照
https://repo.spring.io/snapshot
真的
春季里程碑
春季里程碑
https://repo.spring.io/milestone

SpringCloud2020.0不再默认使用引导。您需要启用引导或在application.properties中使用spring.config.import。稍后我会给出答案。Github链接足以让我反思并添加必要的内容。非常感谢您@Spencergib。根据2020.0发行说明,在配置客户端的pom.xml中添加SpringCloudStarter引导程序对我来说是可行的。对于其他人,将下面的依赖项jar放在pom.xml
org.springframework.cloud-spring-cloud-starter-bootstrap
@spencergib-这对我仍然不起作用。问题是-