1

我越来越多地尝试设计和构建我的应用程序,使它们与框架无关。这意味着使用 JSR 注释而不是 Spring 注释、JPA2 接口等,但我发现自己有时会遇到很多困难。

例如,此刻,我需要检索特定类的所有 bean 的列表。使用特定于 Spring 的方法,我可以使用 ApplicationContext .getBeansOfType(Clazz),但我试图在不使用 Spring ApplicationContext 的情况下执行此操作。

是否有等效于 Spring 的应用程序上下文的 JSR?

Ex(快速伪代码):

@Autowired private ApplicationContext ctx;

protected Map<String, Clazz> getBeans(){
   return ctx.getBeansOfType( Clazz );
}

不使用 Spring 我怎么能做到这一点?

4

2 回答 2

1

我认为不是。

对于 Spring,您可以使用:

 @Inject
 private Map<String, Foo> fooBeans;

避免明确引用ApplicationContex,但 AFAIK 这不适用于其他 DI 容器。

于 2013-10-16T23:15:51.783 回答
0

您不会找到一种与框架无关的方式来执行此操作。对于您将使用的 CDI

@Inject Instance<Foo> fooBeans;

于 2013-10-21T18:20:44.947 回答