gpt4 book ai didi

dependencies - 使用 Guice(或 Spring)注入(inject)列表

转载 作者:行者123 更新时间:2023-12-04 05:52:42 26 4
gpt4 key购买 nike

我有一个实现 Action 接口(interface)的操作列表。

FooAction implements Action
BarAction implements Action

我希望能够处理列表中的每个操作:-
List<Action> actions = new ArrayList<Action>;
..

for( Action action : actions)
action.process();

是否有可能让 Guice(或 spring!)将所有单独的操作注入(inject)到操作列表中?
我知道我可以编写代码来手动创建这样的集合:-
Multibinder<Action> actionBinder = Multibinder.newSetBinder(binder(), Action.class);

actionBinder.addBinding().to( FooAction.class );
actionBinder.addBinding().to( BarAction.class );

但是,如果我可以编写新的 Action 类并自动提取并注入(inject)到我的列表中,那会很好吗?
或者这只是一厢情愿。

最佳答案

正如 mlk 所逃避的那样,您正在寻找一个类路径扫描器。我们使用反射:

http://code.google.com/p/reflections/

你可能想看看他们的“getSubTypesOf”方法。我们广泛使用它以及他们的“getTypesAnnotatedWith”方法来在启动时查找具有某种风格的所有类,以便它们可以在启动时绑定(bind)到列表。

关于dependencies - 使用 Guice(或 Spring)注入(inject)列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9885120/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com