我是Spring & WebService的新手,並試用Spring.io上的一些指南。 我計劃創建一個基本的RESTful WebService,它使用Google Direction API並返回狀態。SpringApplication無法實例化bean
下面是類:
資源
@JsonIgnoreProperties(ignoreUnknown=true) public class Direction { // getters & setters public Direction() { super(); } private String status; public String toString() { return status; } }
控制器
@Controller public class Consumer { public Consumer() { super(); } @Resource private String url; @Resource private RestTemplate client; @Resource private String apiKey; @RequestMapping(value = "/directions", method=RequestMethod.GET) public @ResponseBody Direction consume(@RequestParam(value="source") String source, @RequestParam(value="destination") String destination) { return consumeDirections(buildURI(source, destination)); } // Builds URI private String buildURI(...) { ... } private Direction consumeDirections(final String requestURI) { return client.getForObject(requestURI, Direction.class); } }
配置V1
@Configuration @ComponentScan @EnableAutoConfiguration public class Application { public static void main(String[] args) { SpringApplication.run(Consumer.class, args); } }
Springconfig http://pastebin.com/dsNVBWQq
春返回[java.lang.String中]發現無依賴型的排位豆。 這發生在Consumer的所有bean中。
然而,這一工程配置V2
@Configuration
@ComponentScan
@EnableAutoConfiguration
public class Application {
@Resource
private Consumer consumer;
public void execute() {
System.out.println(consumer.consume("x", "z"));
}
public static void main(String[] args) {
ConfigurableApplicationContext context = new ClassPathXmlApplicationContext("application-config.xml");
context.getBean(Application.class).execute();
}
}
一些觀察
- @Resouce(明確定義的bean)爲V1不工作
- SpringApplication沒有意識到Springconfig和豆過程中失敗實例化
我想簡寫以及爲什麼這個問題突然出現以及如何解決它?
你在哪裏定義了'apiKey'和'url'在v1 – Jaiwo99
@ Jaiwo99:它在Spring-config中。這兩個版本我都沒有碰過Spring配置。 – Mohitk