IOC容器比較--Spring VS Pico VS Yan/Nuts
Features? | Spring? | Pico? | Yan/Nuts |
---|---|---|---|
xml configuration |
Yes? |
Through Nano Container |
Yes |
Life cycle |
Singleton only |
Singleton only |
Both singleton and prototype |
Parametered and ad-hoc life cycle |
No |
No |
Through <lifecycle> tag |
Constructor Injection |
Yes |
Yes |
Yes |
Setter Injection |
Yes |
Yes |
Yes |
Factory Method Injection |
Yes |
Yes |
Yes |
Referencing Field |
FieldRetrievingFactoryBean |
Implement ComponentAdapter |
Through <field> tag. |
Anonymous sub-bean |
Yes |
No |
Yes |
Ad-hoc bean combination |
No |
No |
Through <sequence> or <callcc> tags |
Concise collection literal |
No |
No |
Yes |
named local bean |
No |
No |
Through <local> tag |
Bean Definition Reuse |
through "abstract" bean |
|
Through <function> tag |
import module |
Yes |
Yes |
Yes |
module private beans |
No |
No |
Through "export" and "hide" attribute of <module> |
Selective import by bean names |
No |
No |
Through "includes" and "excludes" attribute of <import> |
Import with namespace |
No |
No |
Through "namespace" attribute of <import> |
Singleton bean with prototype property |
Requires Cglib and bytecode generation |
ComponentAdapter combination |
Through component combination |
Dependency Injection for objects not managed by container |
Supported at the cost of Spring API dependency |
No |
Through <function> and <factory> tag |
Extensible tag library |
No. But FactoryBean is a substitute |
No |
By implementing subclasses of Nut |
Configuration unit-testable within configuration file. |
No |
No |
By using <sequence> together with <assertEqual>, <assertSame>, <if>, <unless>, <fail> etc. |
autoproxy |
Yes |
|
No |
Custom PropertyEditor |
Yes |
Yes |
No |
Container hierarchy |
Yes |
Yes |
Yes |
AOP support |
Both Spring AOP and AspectJ |
Via dynaop |
Any AOP solution can be plugged in. An integration package for spring AOP is provided out-of-box. |
Declarative Transactional support |
Yes |
? |
No. But Spring's declarative transaction support is integrated. |
Scripting language support |
Not yet |
Nano Container |
Not yet |
posted on 2005-12-08 21:56 Flyingis 閱讀(786) 評論(0) 編輯 收藏 所屬分類: Technology