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
|