Java 无法解析占位符';消息';“在价值上”${message}";
我正在实现这个指南:关于SpringCloud配置 服务器:Java 无法解析占位符';消息';“在价值上”${message}";,java,spring,spring-cloud,spring-cloud-config,Java,Spring,Spring Cloud,Spring Cloud Config,我正在实现这个指南:关于SpringCloud配置 服务器: @EnableConfigServer @SpringBootApplication public class SpringCloudConfigExampleServiceApplication { public static void main(String[] args) { SpringApplication.run(SpringCloudConfigExampleServiceApplication
@EnableConfigServer
@SpringBootApplication
public class SpringCloudConfigExampleServiceApplication {
public static void main(String[] args) {
SpringApplication.run(SpringCloudConfigExampleServiceApplication.class, args);
}
}
服务器应用程序属性:
server.port=8888
spring.cloud.config.server.git.uri=https://github.com/stavalfi/MySpringCloudConfigContentRepository.git
management.endpoints.web.exposure.include=*
server.port=8889
spring.application.name=a-bootiful-client
# N.B. this is the default:
spring.cloud.config.uri=http://localhost:8888
使用chrome进行测试时:(HTTP GET)
如您所见,我得到:{“message”:“helloworld”}
客户:
@SpringBootApplication
public class SpringCloudConfigExampleClientApplication {
@Value("${message}")
private String message;
public static void main(String[] args) {
ConfigurableApplicationContext run = SpringApplication.run(SpringCloudConfigExampleClientApplication.class, args);
SpringCloudConfigExampleClientApplication bean = run.getBean(SpringCloudConfigExampleClientApplication.class);
System.out.println(bean.message);
}
}
客户端应用程序.properties:
server.port=8888
spring.cloud.config.server.git.uri=https://github.com/stavalfi/MySpringCloudConfigContentRepository.git
management.endpoints.web.exposure.include=*
server.port=8889
spring.application.name=a-bootiful-client
# N.B. this is the default:
spring.cloud.config.uri=http://localhost:8888
客户端bootstrap.properties:
server.port=8888
spring.cloud.config.server.git.uri=https://github.com/stavalfi/MySpringCloudConfigContentRepository.git
management.endpoints.web.exposure.include=*
server.port=8889
spring.application.name=a-bootiful-client
# N.B. this is the default:
spring.cloud.config.uri=http://localhost:8888
客户pom:
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
<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>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Finchley.M8</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
项目的Github存储库:
我想你忘了演示的一部分 在新创建的a-bootiful-client.properties文件中添加一个简单的属性和值message=helloworld,然后git提交更改 可能当时还没有加载属性。您下面的示例略有不同
@SpringBootApplication
public class ConfigClientApplication {
public static void main(String[] args) {
SpringApplication.run(ConfigClientApplication.class, args);
}
}
@RefreshScope
@RestController
class MessageRestController {
@Value("${message:Hello default}")
private String message;
@RequestMapping("/message")
String getMessage() {
return this.message;
}
}
消息将在控制器中填充/刷新您确定要使用spring framework的@Value annotation而不是任何其他库吗?好的观点:是的,我使用的是正确的:
import org.springframework.beans.factory.annotation.Value代码>发布应用程序启动日志您可以提供一个复制问题的日志吗?在日志的最顶端,您应该看到配置客户端日志它正在从配置服务器使用什么属性文件,你能提供那些日志吗?我做到了:https://github.com/stavalfi/MySpringCloudConfigContentRepository/blob/master/a-bootiful-client.properties
您是否添加了org.springframework.cloud:springcloudstarter配置依赖项?Spring似乎没有从配置服务器加载是的。我在问题中添加了客户端pom。我只是想当时还没有加载属性