假设我有一个ListCreator
要配置的类。我希望能够告诉它排序顺序以及如何输出我的表格。因此我有布尔sortDescending
属性和由(但也由)TableWriter
实现的接口。在这个例子中,我认为配置和 DI 齐头并进。我想写一些类似这个 Spring(伪)例子的东西:PdfTableWriter
XlsTableWriter
<beans>
<bean id="ListCreator" class="ModularListCreator">
<property name="tableWriter">
<ref local="TableWriter"/>
</property>
<property name="sortDescending">
<value>true</value>
</property>
</bean>
<bean id="TableWriter" class="PdfTableWriter"> </bean>
</beans>
现在 Spring 可以做到这一点,但 Weld & Guice 似乎做不到。例如 Weld 允许您在 beans.xml 中选择替代方案,但仅限于整个应用程序。如果我想同时拥有一个ListCreator
用于 PDF 和另一个用于 XLS 怎么办?
我目前不了解 Weld 和 Guice 的范围,因为它们似乎不允许进行太多配置。这似乎只是减轻了编写new
或实现自己的工厂的需要。例如,EJB 注入也是如此,这很好,但整个配置部分在哪里(选择哪个实例以及我实际想要的参数)。
说到重点:我不想使用 Spring,因为它似乎是开销。我宁愿使用 JSR 指定的干净和小巧的东西。有什么建议么?