我有以下课程:
@Configuration
public class ActionsConfig {
private Map<ObjectType, List<Action>> map = new HashMap<>();
@Bean
public Action1 action1() {
return new Action1();
}
@Bean
public Action2 action2(){
return new Action2();
}
@Bean
public Action3 action3(){
return new Action3();
}
private void fillMap(){
//here I am filling my map
}
public Map<ObjectType, List<Action>> getMap(){
return this.map;
}
}
类Action1
,Action2
和Action3
实现公共的Action
接口。
然后,在我的服务中,我自动为ActionsConfig
类布线并获得了地图。
@Service
public class BasketService {
@Autowired
private ActionsConfig actionsConfig;
...
public void doSomething(){
...
actionsConfig.getMap()...
...
}
}
有没有一种方法可以自动装配地图,从而直接使用地图中的值?
答案 0 :(得分:1)
您可以创建一个使用@Bean注释的方法。
@Bean
public Map<ObjectType, List<Action>> getMap() {
Map<ObjectType, List<Action>> map = new HashMap<>();
fillMap()
return map;
}
然后您可以使用@Autowired来自动装配地图。
@Autowired
private Map<ObjectType, List<Action>> myMap;