我在使用另一个 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 !
我可以使用浏览器很好地获取属性:
...所以我猜它在我的其他配置中!
客户
首先,我使用 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;
}
}
..但是它没有从配置服务器获取任何东西..
我的客户的资源结构:
知道我做错了什么吗?
亲切的问候...
答案 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 父版本......有时不是。
我的结论是,这非常令人困惑,我只需要在不问太多问题的情况下进行任何我认为可行的工作......:(