Primavera – BeanFactory

Lo más importante cuando hablamos de Spring es la inyección de dependencia, que es posible porque Spring es en realidad un contenedor y se comporta como una fábrica de Beans. Al igual que la interfaz BeanFactory, es el contenedor más simple que proporciona un mecanismo de configuración avanzado para instanciar, configurar y administrar el ciclo de vida de los beans. Los beans son objetos Java que Spring IoC Container configura en tiempo de ejecución. BeanFactory representa un contenedor IoC básico que es una interfaz principal de ApplicationContext. BeanFactoryutiliza Beans y sus metadatos de dependencias para crearlos y configurarlos en tiempo de ejecución. BeanFactory carga las definiciones de beans y la dependencia entre los beans en función de un archivo de configuración (XML) o los beans pueden devolverse directamente cuando sea necesario mediante la configuración de Java. Hay otros tipos de archivos de configuración como LDAP, RDMS, archivo de propiedades, etc. BeanFactory no admite la configuración basada en anotaciones, mientras que ApplicationContext sí ​​lo hace.

Primero, veamos algunos de los métodos de Bean Factory antes de llegar a la implementación, que se muestran a continuación en formato tabular a continuación:

Método

Descripción

contieneBean(nombre de la string) ¿Esta fábrica de beans contiene una definición de beans o una instancia de singleton registrada externamente con el nombre dado?
getAliases(nombre de la string) Devuelva los alias para el nombre de bean dado, si corresponde.
getBean(Clase<T> tipo requerido) Devuelve la instancia de bean que coincide de forma exclusiva con el tipo de objeto dado, si corresponde.
getBean(Class<T> tipo requerido, Objeto… argumentos) Devuelve una instancia, que puede ser compartida o independiente, del bean especificado.
getBean(nombre de la string) Devuelve una instancia, que puede ser compartida o independiente, del bean especificado.
getBean(String nombre, Class<T> tipo requerido) Devuelve una instancia, que puede ser compartida o independiente, del bean especificado.
getBean(String nombre, Objeto… argumentos) Devuelve una instancia, que puede ser compartida o independiente, del bean especificado.
getBeanProvider(Clase<T> tipo requerido) Devuelve un proveedor para el bean especificado, lo que permite la recuperación diferida de instancias bajo demanda, incluidas las opciones de disponibilidad y exclusividad.
getBeanProvider(ResolvableType tipo requerido) Devuelve un proveedor para el bean especificado, lo que permite la recuperación diferida de instancias bajo demanda, incluidas las opciones de disponibilidad y exclusividad.
getType(nombre de la string) Determine el tipo de frijol con el nombre dado.
getType(String name, booleano allowFactoryBeanInit) Determine el tipo de frijol con el nombre dado.
isPrototype(nombre de la string) ¿Es este frijol un prototipo? Es decir, ¿getBean(java.lang.String) siempre devolverá instancias independientes?
isSingleton(nombre de la string) ¿Es este bean un singleton compartido? Es decir, ¿getBean(java.lang.String) siempre devolverá la misma instancia?
isTypeMatch(String nombre, Clase<?> typeToMatch) Compruebe si el bean con el nombre dado coincide con el tipo especificado.
isTypeMatch(nombre de la string, ResolvableType typeToMatch) Compruebe si el bean con el nombre dado coincide con el tipo especificado.

Procedimiento: 

  1. Creando un proyecto Spring usando start.spring.io .
  2. Creando una clase POJO.
  3. Configure el bean Student en el archivo bean-factory-demo.xml .
  4. Escribiéndolo en la clase de aplicación.

Implementación:

Paso 1: Definición de Bean: Crear una clase POJO de estudiante.

// Java Program where we are creating a POJO class

// POJO class
public class Student {

  // Member variables
  private String name;
  private String age;

  // Constructor 1
  public Student() {
  }

  // Constructor 2
  public Student(String name, String age) {
    this.name = name;
    this.age = age;
  }

  // Method inside POJO class
  @Override
  public String toString() {

    // Print student clas attributes
    return "Student{" + "name='" + name + '\'' + ", age='" + age + '\'' + '}';
  }
}

Paso 2: Configuración del bean XML: Configure el bean Student en el archivo bean-factory-demo.xml .

<?xml version = "1.0" encoding="UTF-8"?>
<beans xmlns = "http://www.springframework.org/schema/beans"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xsi:schemaLocation = "http://www.springframework.org/schema/beans
            https://www.springframework.org/schema/beans/spring-beans.xsd">
            
    <bean id="student" class = "com.gfg.demo.domain.Student">
                <constructor-arg name="name" value="Tina"/>
                <constructor-arg name="age" value="21"/>
        </bean>
</beans>

Paso 3: Clase Principal

// Application class 
@SpringBootApplication

// Main class
public class DemoApplication {

  // Main driver method
  public static void main(String[] args) {

    // Creating object in a spring container (Beans)
    BeanFactory factory = new ClassPathXmlApplicationContext("bean-factory-demo.xml");
    Student student = (Student) factory.getBean("student");

    System.out.println(student);
  }
}

Producción:

Student{name='Tina', age='21'}

Nota: la clase XmlBeanFactory está en desuso. 

Publicación traducida automáticamente

Artículo escrito por Ganeshchowdharysadanala y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *