Spring Framework: Autowiring


Aunque no es una práctica recomendada, explicaremos los tipos de autowiring soportados por Spring, que son:

  • no : Ningún autowiring es ejecutado. Todas las dependencias deben indicarse explícitamente.
  • byName : El contenedor buscará un bean cuyo nombre o ID sea igual al nombre de una de las propiedades del bean. Si lo encuentra seteará la propiedad con la referencia al bean.
  • byType : El contenedor buscará un bean cuyo tipo sea igual al tipo de una de las propiedades del bean. Si lo encuentra seteará la propiedad con la referencia al bean. Si encuentra más de un bean lanzará la excepción UnsatisfiedDependencyException.
  • constructor : El contenedor evaluará todos los constructores definidos en el bean. Por cada uno de ellos encontrará los beans que sean compatibles en tipo con sus argumentos. El contenedor escogerá el constructor con mayor número de argumentos para los que haya encontrado beans compatibles. En caso de ambigüedad lanzará la excepción UnsatisfiedDependencyException.

Notas:

  • Los tipos de autowiring son definidos por bean, y el valor por defecto es no.
  • Antes de la versión 3 existía el tipo autodetect pero ahora está en desuso (deprecated).


Ejemplo:

Bar.java:

Foo.java:

Target.java:

autowiring.xml:

Salida de la ejecución del programa: