Hay alguna diferencia entre usar un id
atributo y name
atributo en un <bean>
elemento en una Primavera archivo de configuración?
- es difícil entrar por las preguntas de este sencillo y respuestas de manera directa y completa. Gran. Gracias!
Hay alguna diferencia entre usar un id
atributo y name
atributo en un <bean>
elemento en una Primavera archivo de configuración?
De la La primavera de referencia, 3.2.3.1 Nomenclatura De Los Frijoles:
Así que, básicamente, la
id
atributo se ajusta a la id XML estándares de atributos, mientras quename
es un poco más flexible. Generalmente yo usoname
casi exclusivamente. Parece más «Primavera-y».Desde la Primavera de 3.1 el
id
atributo es unaxsd:string
y los permisos de la misma gama de personajes como elname
atributo.La única diferencia entre un
id
y unname
es que unname
puede contener varios alias separados por una coma, punto y coma o un espacio en blanco, mientras que unid
debe ser un valor único.De la Primavera 3.2 documentación:
Uno iba a funcionar. Depende de sus necesidades:
Si el bean identificador contiene un carácter especial(s) por ejemplo (
/viewSummary.html
), no se puede permitir que el granoid
, porque no es un XML válido de IDENTIFICACIÓN. En tales casos, puede omitir la definición del beanid
y suministro de los granosname
lugar.El
name
atributo también ayuda en la definición dealias
es para tu bean, ya que permite especificar múltiples identificadores para un determinado bean.Algunas pequeñas diferencias existe, utilizando el id de lanzar la excepción si no se manejan correctamente .
permítanme respuesta a la pregunta
No hay ninguna diferencia. usted va a experimentar el mismo efecto cuando el id o nombre que se utiliza en una <bean> etiqueta .
Cómo?
Tanto id y nombre de los atributos que nos da un medio para proporcionar valor de identificador para un bean (Para este momento, creo que el id de medios de identificación, pero no identifier). En ambos casos, usted verá el mismo resultado si se llama
applicationContext.getBean("bean-identifier");
.Tome @Bean, el java equivalente de <bean> de la etiqueta, usted no encontrará un atributo id. usted puede dar a su valor de identificador a @Bean sólo a través del nombre del atributo.
Permítanme explicarlo a través de un ejemplo :
Tome este archivo de configuración, vamos a llamar como spring1.xml
Primavera devuelve Foo objeto,
Foo f = (Foo) context.getBean("foo");
. Reemplazar
id="foo"
conname="foo"
en el anterior spring1.xml, Usted todavía va a ver el mismo resultado.Definir su configuración xml como,
Obtendrá BeanDefinitionParsingException. Es decir, Frijol nombre de ‘fooIdentifier’ ya se utiliza en este elemento. Por cierto, Esta es la misma excepción que se va a ver si está por debajo de config
<bean name=»fooIdentifier» class=»com.intertech.Foo»></bean>
<bean name=»fooIdentifier» class=»com.intertech.Foo»></bean>
Si usted mantiene tanto id y el nombre del bean de la etiqueta, el grano se dice que tiene 2 identificadores. usted puede conseguir el mismo bean con cualquier identificador.
tomar config como
el siguiente código imprime cierto
Hay diferencia en la definición de Id & nombre en ApplicationContext xml ? No
Como de 3.1(de primavera), id también se define como un xsd:string tipo.
Esto significa que, independientemente de caracteres permitidos en la definición de nombre son permitidos en Id.
Esto no era posible antes de la Primavera 3.1.
Por qué utilizar el nombre, cuando es el mismo Id ?
Es útil para algunas situaciones, tales como permitir que cada componente en una aplicación para referirse a una misma dependencia mediante el uso de un bean nombre que es específica a la que el propio componente.