我在spring boot 1.3.3版本上,我有一个要求,我的spring启动应用程序需要根据env传递调用端点, 这意味着如果env作为Dev传递我将需要调用devendpoint, 如果env作为Dev1传递,则需要调用dev1endpoint,依此类推。 那我该怎么做呢? 我是否需要创建多个restTemplate实例? 我应该根据env传递动态构造resttemplate吗? 作为构建resttemplate的一部分,我还需要添加基于env选择的appllicable拦截器。 Plesae建议。
答案 0 :(得分:0)
您可以有两个相同类的bean。可以将其中一个标记为主要对象,在@Autowired上使用它可以指定将哪个与@Qualifier一起使用。
示例:
@Configuration
public class MyConfig {
@Bean
@Primary
public RestTemplate typicalConfig() {
// various configs on your rest template
return new RestTemplate();
}
@Bean
public RestTemplate lessTypical() {
// various alternate configurations
return new RestTemplate();
}
}
现在进入您的服务类别:
@Service
public class MyService {
@Autowired
RestTemplate typicalRestTemplate;
@Autowired
@Qualifier("lessTypical")
private RestTemplate alternateRestTemplate;
...
}
答案 1 :(得分:-1)
@Bean
public RestTemplate restTemplate() {
return new RestTemplate();
}
然后在您的服务类上注入该对象,并随意执行任何操作。我建议您阅读以下关于restTempalte的文章,这可能会对您有所帮助http://www.baeldung.com/rest-template