tutorial mvc example ejemplo anotaciones spring configuration

mvc - Diferencia entre el uso de id de bean y el nombre en el archivo de configuración de Spring



spring security example (3)

¿Hay alguna diferencia entre usar un atributo de id y un atributo de name en un elemento <bean> en un archivo de configuración de Spring?


Cualquiera de los dos funcionaría. Depende de tus necesidades:
Si su identificador de bean contiene caracteres especiales, por ejemplo ( /viewSummary.html ), no se permitirá como id bean, ya que no es una identificación XML válida. En tales casos, podría omitir la definición de la id del frijol y, en su lugar, proporcionar el name del frijol.
El atributo de name también ayuda a definir alias es para su bean, ya que permite especificar múltiples identificadores para un bean determinado.


De la referencia de Spring , 3.2.3.1 Naming Beans :

Cada bean tiene uno o más identificadores (también llamados identificadores o nombres; estos términos se refieren a lo mismo). Estos identificadores deben ser únicos dentro del contenedor en el que se aloja el bean. Un bean casi siempre tendrá solo un id, pero si un bean tiene más de un id, los extra se pueden considerar alias.

Cuando se usan metadatos de configuración basados ​​en XML, se usan los atributos ''id'' o ''name'' para especificar los identificadores de bean. El atributo ''id'' le permite especificar exactamente una identificación, y como es un atributo de identificación de elemento XML real, el analizador XML puede realizar una validación adicional cuando otros elementos hacen referencia a la identificación; como tal, es la forma preferida de especificar una identificación de frijol. Sin embargo, la especificación XML limita los caracteres que son legales en ID XML. Por lo general, esto no es una restricción, pero si necesita utilizar uno de estos caracteres XML especiales o quiere introducir otros alias en el bean, también puede especificar uno o más identificadores de beans, separados por una coma (, ), punto y coma (;) o espacios en blanco en el atributo ''nombre''.

Así que, básicamente, el atributo id ajusta a los estándares de atributos XML id mientras que el name es un poco más flexible. En general, uso el name casi exclusivamente. Simplemente parece más "Spring-y".


Desde Spring 3.1 el atributo id es una xsd:string y permite el mismo rango de caracteres que el atributo de name .

La única diferencia entre una id y un name es que un name puede contener múltiples alias separados por una coma, punto y coma o espacios en blanco, mientras que una id debe ser un valor único.

De la documentación de Spring 3.2:

En los metadatos de configuración basados ​​en XML, utiliza los atributos id y / o name para especificar los identificadores de bean. El atributo id le permite especificar exactamente una identificación. Convencionalmente, estos nombres son alfanuméricos (''myBean'', ''fooService'', etc.), pero también pueden ser caracteres especiales. Si desea introducir otros alias para el bean, también puede especificarlos en el atributo de nombre, separados por una coma (,), punto y coma (;) o espacio en blanco. Como nota histórica, en las versiones anteriores a Spring 3.1, el atributo id se tipeó como un xsd: ID, que restringía los posibles caracteres. A partir de 3.1, ahora es xsd: string. Tenga en cuenta que la singularidad del id. De frijol sigue siendo impuesta por el contenedor, aunque ya no por los analizadores XML.