java - Spring Config 服务器 - 无法获取属性
问题描述
我无法从另一个 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,所以我只使用一个名为的本地文件
新闻服务-config.properties:
message=Hello configuration server !
我可以使用浏览器很好地获取属性:
..所以我猜它在我的其他配置中!
客户_
首先,我使用 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;
}
}
..但是它没有从配置服务器获取任何东西....
我的客户的资源结构:
任何想法我做错了什么?
亲切的问候...
解决方案
似乎它与配置客户端实现的版本有关。如果我在我的 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 父版本......有时不是。
我的结论是,这非常令人困惑,我只需要在不问太多问题的情况下使用我猜想的任何作品.... :(
推荐阅读
- python - Panda Pivot 功能无法正常工作
- razor - SfGrid RowSelection 事件处理重新加载数据
- python - 如何从 Django“Choices”中获取值并通过下拉元素将它们作为 Axios 请求发送到 React 前端?
- python - 使用 keras 预处理后绘制图像
- graphql - GraphQL:在所有解析器之间共享上下文
- linux - 安装pdftk alpine linux时出现不可满足的约束错误
- python - 为什么 DataFrame.drop() 不适用于列方式(轴 = 1)?
- django - 如何在 django 迁移中将模型字段的值拆分为多个模型字段?
- cassandra - 在准备好的查询中,什么会导致“java.lang.IndexOutOfBoundsException:索引:1,大小:1”?
- c++ - 如何使用 NodeJS 的 child_process 在 c++ 可执行文件中输入输入?