我有一個實現Action接口的動作列表。用Guice(或Spring)注入列表
FooAction implements Action
BarAction implements Action
我希望能夠處理列表中的每個動作: -
List<Action> actions = new ArrayList<Action>;
..
for(Action action : actions)
action.process();
是否有可能得到吉斯(或彈簧!)注入所有的個體行爲納入了動作列表? 我知道我可以編寫代碼來手動創建一組這樣的: -
Multibinder<Action> actionBinder = Multibinder.newSetBinder(binder(), Action.class);
actionBinder.addBinding().to(FooAction.class);
actionBinder.addBinding().to(BarAction.class);
但是,這將是很好,如果我能寫會被自動拾取並注入到我的列表新的動作類? 還是這只是一廂情願的想法。
我知道java dosnt知道這個,但是有一個Guice或Spring註釋會導致Guice綁定器在我運行時爲我填充(畢竟它可以做到,如果它不是列表),而不是我很難通過調用'addBinding()'來編碼它? – 2012-03-27 14:57:25
Guice中沒有註釋。你必須自己寫。如上所述,Java不知道,所以你將不得不掃描類路徑。 – 2012-03-27 15:00:34