【发布时间】:2017-07-09 22:45:35
【问题描述】:
我无法通过 Spring Boot 从属性文件中读取属性。我有一个 REST 服务,它通过浏览器和 Postman 运行,并向我返回一个有效的 200 响应和数据。
但是,我无法使用 @Value 注释通过这个 Spring Boot 客户端读取属性并获得以下异常。
例外:
helloWorldUrl = null
Exception in thread "main" java.lang.IllegalArgumentException: URI must not be null
at org.springframework.util.Assert.notNull(Assert.java:115)
at org.springframework.web.util.UriComponentsBuilder.fromUriString(UriComponentsBuilder.java:189)
at org.springframework.web.util.DefaultUriTemplateHandler.initUriComponentsBuilder(DefaultUriTemplateHandler.java:114)
at org.springframework.web.util.DefaultUriTemplateHandler.expandInternal(DefaultUriTemplateHandler.java:103)
at org.springframework.web.util.AbstractUriTemplateHandler.expand(AbstractUriTemplateHandler.java:106)
at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:612)
at org.springframework.web.client.RestTemplate.getForObject(RestTemplate.java:287)
at com.example.HelloWorldClient.main(HelloWorldClient.java:19)
HelloWorldClient.java
public class HelloWorldClient {
@Value("${rest.uri}")
private static String helloWorldUrl;
public static void main(String[] args) {
System.out.println("helloWorldUrl = " + helloWorldUrl);
String message = new RestTemplate().getForObject(helloWorldUrl, String.class);
System.out.println("message = " + message);
}
}
application.properties
rest.uri=http://localhost:8080/hello
【问题讨论】:
-
HelloWorldClient是 Spring bean 吗? -
该类没有任何注释,因此我想它不是。
-
你的主类应该用@SpringBootApplication注解
-
你需要从你的 main 方法中调用 SpringApplication.run(HelloWorldClient.class, args) 来启动应用程序。
标签: java spring rest spring-mvc spring-boot