我是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