Haba de montaje automático

Haba de montaje automático por:

  1. Byname: El nombre del montaje automático, inspeccione el envase y el nombre de atributo de búsqueda totalmente coherente con el grano, y equipado con las propiedades automáticas
  2. byType: según el tipo de montaje automático, una inspección de contenedores mismo tipo de atributo del grano, será equipado automáticamente con el atributo, si hay una pluralidad de primavera haba de que la propiedad más adecuada no puede ser determinado, se produce una excepción si no se encontrado, no hubiera pasado nada.
  3.  constructor: El montaje automático y byType configurado es similar, si no se encuentra en el recipiente es consistente con el grano de constructor tipo de parámetro, la excepción. no se recomienda

A, Byname montaje automático

bean.xml configuración Autowire = "Byname" para

<? "UTF-8"? Xml version = "1.0" encoding = ?> 

< Frijoles xmlns = "http://www.springframework.org/schema/beans" 
       xmlns: xsi = "http://www.w3.org / 2001 / la XMLSchema-instancia " 
       xsi: la schemaLocation =" http://www.springframework.org/schema/beans 
    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd " > 

    < bean lo anterior mencionado ID = "TextID la" clase = "Automatically.ByName.Text" Autowire = "sobrenombre" > </ bean > 
    <! - 
        Nota inyecta por su nombre, nombre de identificación debe coincidir con el atributo de nombre del mismo nombre 
     -> 
    <frijol ID = "hablar" de clase= "Automatically.ByName.Speak" > </ bean > 
</ frijol >
Ver código

TestDao: montaje automático, simplemente escribiendo método set

público  de clase TextDao {
     Privado del Habla TestService;
     pública  nula por ejemplo () { 
        System.out.println ( "el inicio del texto" ); 
        speak.say (); 
    } 
    // montaje automático, escritura único método para configurar un conjunto Autowire = "sobrenombre" al 
    público  vacío setSpeak (Speak TestService) {
         el presente .speak = hablar; 
    } 
}
Ver código

Servicio de prueba:

público  de clase del TestService {
     público  nula por ejemplo () { 
        System.out.println ( "Habla ---- ----- método se lleva a cabo por ejemplo" ); 
    } 
}
Ver código

TestMain: Clase de Prueba

público  de clase TestMain { 

    @test 
    pública  vacío Test () { 
        contexto Application Context = nueva ClassPathXmlApplicationContext ( "Bean.xml" ); 
        TextDao textDao = (TextDao) context.getBean ( "TextID" ); 
        textDao.say (); 
    } 
}
Ver código

El resultado:

 

Dos, byType autowiring

y bean.xml similares Byname simplemente modificar la Autowire = "Byname" como la Autowire = "el byType"

TestDao con el mismo sobrenombre

TestService con el mismo sobrenombre

TestMain con el mismo sobrenombre

El resultado:

 

 

 

 Tres, constructor de montaje automático

y bean.xml similares Byname simplemente modificar la Autowire = "Byname" como la Autowire = " constructor "

<? "UTF-8"? Xml version = "1.0" encoding = ?> 

< Frijoles xmlns = "http://www.springframework.org/schema/beans" 
       xmlns: xsi = "http://www.w3.org / 2001 / XMLSchema la instancia " 
       xsi: la schemaLocation =" http://www.springframework.org/schema/beans 
    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd " > 
     <! - 
        este modo es muy similar a byType, pero se aplica a argumentos de constructor. contenedor de primavera visto como los frijoles, 
    la propiedad Autowire de los granos en el archivo de configuración XML para el constructor. Entonces, 
    se trata de un parámetro de perfil en su constructor partido y los cables nombres frijoles. 
    Si se encuentra una coincidencia, se inyectará estos frijol, de lo contrario se producirá una excepción 
    -> 
    < frijol lo anterior mencionado ID = "La TextID"= "Automatically.AutoConstructor.TestDao" Autowire = "constructor" > 
    </ bean > 

    < bean ID = "TestService" clase = "Automatically.AutoConstructor.TestService" > </ bean > 
</ frijoles >
Ver código

TestDao: y los dos no me gusta es que ningún método conjunto único constructor

público  de clase TestDao {
     privada hablar TestService;
    pública TestDao (TestService Hablar) {
         este .speak = hablan; 
    } 
    Pública  nula por ejemplo () { 
        System.out.println ( "TestDao de inicio:" ); 
        speak.say (); 
    } 
}
Ver código

TestService con el mismo sobrenombre

TestMain con el mismo sobrenombre

El resultado:

Publicado 84 artículos originales · ganado elogios 0 · Vistas 692

Supongo que te gusta

Origin blog.csdn.net/qq_38405199/article/details/103712166
Recomendado
Clasificación