我有两个同类型的豆子;
@Bean
public RestTemplate jsonTemplate() {
return new RestTemplate();
}
@Bean
public RestTemplate xmlTemplate() {
return new RestTemplate();
}我把两个豆子都列成了下面的清单;
@Autowired
private List<RestTemplate> templates;列表templates将在size=2中包含两个bean。
从这个列表中,我如何获得他们的名字(["jsonTemplate", "xmlTemplate")?
发布于 2019-09-20 06:44:11
真的很简单..。
只是在做;
@Autowired私有Map模板;
让Spring将名称作为键插入,bean本身作为映射中的值插入。
Spring似乎只是停止跟踪注入后的命名。所以我不知道是否还有其他的方法(或者,如果可能的话,更简单的方法)?
发布于 2019-09-20 06:44:40
您可以使用bean地图:
@Bean
public Map<String, RestTemplate> templateMap(RestTemplate jsonTemplate, RestTemplate xmlTemplate) {
Map<String, RestTemplate> map = new HashgMap<>();
map.put("jsonTemplate", jsonTemplate);
map.put("xmlTemplate", xmlTemplate);
return map;
}
@Autowired
private Map<String, RestTemplate> templates;https://stackoverflow.com/questions/58022872
复制相似问题