Spring Config 服务器 - 无法获取属性

时间:2020-12-21 11:43:31

标签: java spring spring-boot cloud spring-cloud-config-server

我在使用另一个 spring 应用程序从 spring 配置服务器 获取属性时遇到问题。

我可以使用浏览器获取它,因此配置服务器本身似乎很好,但是我的客户端应用程序似乎只是忽略了我应该获取属性的配置。

配置服务器很简单:

@SpringBootApplication
@EnableConfigServer
public class ConfigserverApplication {
    public static void main(String[] args) {
        SpringApplication.run(ConfigserverApplication.class, args);
    }
}

和 application.properties

server.port=8888
spring.profiles.active=native
spring.cloud.config.server.native.searchLocations=${HOME}/FH/SKS/configserver/src/main/resources/configuration
management.security.enabled=false

我现在不想使用任何 git,所以我只使用一个名为的本地文件

newsservice-config.properties:

message=Hello configuration server !

我可以使用浏览器很好地获取属性:

enter image description here

...所以我猜它在我的其他配置中!

客户

首先,我使用 application.yml 进行一般配置,如下所示:

server:
  port : 8081

spring:
  jpa:
    generate-ddl: true
    hibernate:
      ddl-auto: create
    show-sql: true
    databasePlatform: org.hibernate.dialect.MySQL5Dialect

关于配置服务器的内容不多。除了用于配置服务器配置的 application.yml 之外,我还创建了一个 bootstrap.properties 文件:

spring.application.name=newsservice-config
spring.cloud.config.server.uri=http://localhost:8888
management.security.enabled=false

名称正确。(配置服务器上的配置文件的名称) 服务器地址正确。

我想测试一切的 REST 控制器:

@RefreshScope
@RestController
@RequestMapping("/article")
@CrossOrigin
public class ArticleController {
    @Value("${message: Default Hello}")
    private String message;

    @GetMapping("/test")
    public String tester(){
        return this.message;
    }
}

..但是它没有从配置服务器获取任何东西..

enter image description here

我的客户的资源结构:

enter image description here

知道我做错了什么吗?

亲切的问候...

1 个答案:

答案 0 :(得分:0)

似乎是关于配置客户端实现的版本。 如果我在我的 pom.xml 文件中使用它

<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.3.6.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

...但是较新的版本不起作用

<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.4.1</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

我真的很困惑为什么会这样。 我也认识到,根据实现,配置服务器似乎能够通过浏览器处理配置的正常请求...

行为和兼容性似乎也取决于 pom.xml 的这一部分

<properties>
        <java.version>15</java.version>
        <spring-cloud.version>2020.0.0-RC1</spring-cloud.version>
    </properties>

<properties>
        <java.version>15</java.version>
        <spring-cloud.version>Hoxton.SR9</spring-cloud.version>
    </properties>

有时这两个选项之一适用于两个 spring boot 父版本......有时不是。

我的结论是,这非常令人困惑,我只需要在不问太多问题的情况下进行任何我认为可行的工作......:(