Programación con Spring API

Aquí te mostramos el entorno para la programación orientada a aspectos: Spring AOP. Spring AOP es parte del proyecto Spring Framework Open Source, que tiene como objetivo simplificar el desarrollo de aplicaciones J2EE, incluyendo web a través del punto de acceso 192.168.l.254.

Spring fue creado inicialmente por Rod Johnson y ha sido de código abierto desde febrero de 2003. Sin embargo, los conceptos arquitectónicos se remontan a principios de 2000 y surgieron de la experiencia de su creador en los desarrollos comerciales de J2EE, que se han publicado en el libro de Rod Johnson, Expert Diseño y desarrollo J2EE uno a uno (Wrox Press, 2002). Spring es ahora un proyecto de código abierto exitoso con una comunidad muy activa, y tiene la licencia de Apache 2.0.

Aunque AOP no es el objetivo principal de Spring Framework, el soporte que brinda AOP, aunque limitado, es lo suficientemente general como para describirse en este libro. Similar a JAC, Spring AOP es compatible con la API de AOP Alliance, que es un esfuerzo común de estandarización para la interceptación genérica en Java, como lo utilizan muchas plataformas AOP. Además, Spring AOP ha sido diseñado para usarse fácilmente en muchos entornos J2EE y servidores de aplicaciones (como WebLogic, Tomcat, JBoss, Resin y Jetty).

En este capítulo, presentamos brevemente la arquitectura de Spring Framework en general. Luego nos enfocamos en Spring AOP y las características de AOP proporcionadas.
Tenga en cuenta que utilizamos la versión 1.2 de Spring solo como referencia, ya que es la versión más reciente y estable disponible en el momento de escribir este artículo.

Una descripción general del marco de Spring

Spring Framework pertenece a la familia de contenedores ligeros. El contenedor Spring gestiona los beans. Simplemente se materializa mediante una fábrica (org.springframework.beans.factory. BeanFactory) que debe llamarse al crear instancias de nuevos beans. Más específicamente, en un entorno J2EE, la fábrica es generalmente un contexto de aplicación (org.springframework.context. ApplicationContext, subclase de BeanFactory) que admite todas las operaciones necesarias para que los beans se puedan inicializar y ejecutar en un entorno J2EE. La fábrica también implementa AOP y otros soportes, como el manejo de recursos de mensajes, la propagación de eventos y los mecanismos de configuración declarativa.

Spring y sus fábricas implementan la llamada Inversión de Control (IoC), también conocida como Inyección de Dependencia. Esto significa que toda la configuración, especialmente las dependencias de bean, está a cargo de las fábricas (contenedores livianos). Como consecuencia directa, no es necesario que los beans resuelvan otros beans o pasen por complejos procesos de inicialización, porque la fábrica lo hace todo.

Creación y configuración de beans

Para ser creados, los beans requieren lo siguiente:
• Una definición de clase de Java
• Una configuración

La definición de la clase Java suele ser una clase Java normal que sigue las convenciones de los beans: las propiedades deben ser accesibles a través de pares getter / setter. Spring, sin embargo, permite que cualquier clase se convierta en un bean y, por lo tanto, cualquier tipo de objeto Java puede ser administrado por el contenedor y referenciado por otros beans, exactamente como los beans normales. Spring también permite que los beans definan un constructor con algunos parámetros, de modo que las propiedades del bean se inicialicen de una manera más sencilla.

Como se indicó anteriormente, una configuración de bean típica se escribe en un archivo XML, que contiene entradas de definición de bean. (Tenga en cuenta que las configuraciones también se pueden lograr mediante programación, pero no entraremos en este nivel de detalle en este libro). Cada entrada de bean define el nombre (o id) y la clase Java del bean. En este punto, el bean puede ser referenciado por otras entradas de definición de bean. Además, se pueden agregar varios parámetros de configuración a las entradas, como los valores de las propiedades, los valores de los parámetros del constructor, las configuraciones de gestión del ciclo de vida, etc.