nEliminates lookup code from within
your application
nAllows for pluggablity and hot
swapping
nPromotes good OO design
nEnables reuse of existing code
nMakes your application extremely testable
nIoC container
nSetter
based and constructor based dependency
injection
nPortable across application servers
nPromotes good use of OO practices such as programming to
interfaces.
nBeans managed by an IoC container are reusable and
decoupled from business logic