假設我有一個類ListCreator
我想配置。我想能夠告訴它排序順序以及如何輸出我的表格。因此,我有布爾型sortDescending
屬性和TableWriter
接口,該接口由PdfTableWriter
(但也由XlsTableWriter
)實現。 在這個例子中,我認爲配置和DI是齊頭並進的。我想寫點東西像今年春季(僞)例如:Java配置和依賴注入(類似於Springs IoC vs. Weld/Guice)
<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可以讓你在beans.xml中選擇備選項,但僅限於整個應用程序。如果我想同時有一個用於PDF的ListCreator
以及另一個用於XLS?
我現在還沒有得到Weld和Guice的範圍,因爲他們似乎沒有允許很多配置。似乎只是減輕了編寫new
或實施自己的工廠的需要。例如,EJB注入也是如此,這很好,但整個配置部分在哪裏(選擇哪個實例具有我實際需要的參數)。
來到真正的重點:我做不是想要使用Spring,因爲它似乎是開銷。我更願意使用JSR指定的最好的清潔和最小的東西。有什麼建議麼?
但這樣我再次在我的代碼中硬連線。 –
@ samy-delux:如果您構建代碼來部署更改,那麼這不是問題。您是否經常在沒有新構建的情況下更改已部署實例的XML?無論如何,把你想要重新配置的東西拿出來比較容易,而不需要編譯。例如,您可以將「sortDescending = true」放入屬性文件中,並使用Names.bindProperties將其與文件進行綁定。 – ColinD
儘管在改變內部行爲(切換類的實現)時重構項目的合理性仍然存在,但我仍然認爲Spring在配置文件中如何做得更乾淨。我將如何配置多個'ListCreator'的屬性?該屬性文件會變得混亂。 Spring之外沒有別的東西嗎? –