Configuración Contenedor Sprin IoC
Vamos a configurar el contenedor de Inversión de control (IoC) de Spring Framework, el contenedor se encarga de crear, configurar y ensamblar los beans de la aplicación. Un bean es un objeto Java que es administrado por el contenedor Spring.
Si no has revisado la entrada sobre el contenedor Spring , te recomiendo que lo hagas.
Contenido
Metadatos de configuración
- Archivo XML: forma tradicional de configuración
- Anotaciones: a partir de la versión 2.5 de Spring
- Codigo Java: a partir de la version 3.0 de Spring
Manejo del Contenedor Spring
- ClassPathApplicationContext: crea el contendor Spring a partir de la configuración del archivo XML ubicado en el classpath del proyecto.
-
FileSystemXmlApplicationContext: crea el contenedor Spring a partir
de la configuración del archivo XML, ubicado en el classPath del proyecto o
en otra ruta, se debe especificar una ruta absoluta.
- AnnotationConfigApplicationContext: crear el contenedor Spring a partir de la configuración basada en código Java o anotaciones.
Podemos combinar los tipos de metadatos configuración, depende del proyecto que vas a desarrollar, que configuración se adapte mejor.
Crear Proyecto Spring
Creamos un proyecto con Maven que muestre el típico mensaje Hola Mundo.
<dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.3.15</version> </dependency > </dependencies>
Interface Saludo
package com.curso.spring; public interface Saludo { void saludar(); }
Clase SaludoImpl
Implementamos la interface Saludo y sobrescribimos el metodo saludar()
package com.curso.spring; public class SaludoImpl implements Saludo{ @Override public void saludar(){ System.out.println("Hola Mundo"); } }
Configurar contenedor Spring mediante XML
Creamos el archivo applicationContext.xml dentro de src/main/resources/META-INF/ para los metadatos de configuración
<?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="miSaludo" class="com.curso.spring.SaludoImpl"</bean> </beans>
Entre las etiquetas <beans> se define los distintos <bean> de la aplicación, cada uno de ellos requiere de almenos dos atributos:
- id: define un identificador único para el <bean>
- class: define el tipo del <bean> y utiliza el nombre de clase completo.
Instanciar Contenedor Spring
Para probar el programa, tenemos que crear una instancia del contenedor Spring, utilizamos ClassPathXmlApplicationContext
package com.curso.spring; import org.springframework.context.support.ClassPathXmlApplicationContext; public class Test { public static void main(String [] args){ ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("META-INF/applicationContext.xml"); Saludo saludo = (Saludo)context.getBean("miSaludo"); saludo.saludar(); context.close(); } }
Para ClassPathXmlApplicationContext(archivoConfi) se debe pasar como argumento del constructor, el archivo XML que contiene los metados de configuración, para nuestro ejemplo es applicationContext.xml
A través del objeto context accedemos a los <bean> definidos en el Contenedor Spring, utilizamos el metodo getBean("miSaludo"), pasando como argumento el id del bean a recupear.
El metodo context.close(), cierra el flujo del contenedor Spring, no se podrá obtener mas <bean> del contenedor Spring.
Si te fijas, la clase principal Test nunca crea el objeto miSaludo, sino, que es el contenedor Spring quien crea ese objeto, a esto llamamos inversión de control.
Salida Consola
Hola Mundo Spring
Comentarios
Publicar un comentario