Uso de spring framework en java
Spring Framework

El principal meta de Spring Framework es el establecerse en una opción sencilla y fácil ante EJB. La simplificación del desarrollo de aplicaciones y de sus respectivas pruebas (testing) es una de las claves del éxito de Spring. Este Framework se sustenta en dos características básicas en su núcleo Inversion de Control (Inversion of Control IoC) y la Programación Enfocada a Aspectos (Aspect-orient programming) [11].

Normalmente los objetos obtienen las referencias de otros objetos requeridos por si mismos (tal como en EJB 2.0 los beans obtienen los recursos necesarios usando JNDI). La inversión de control faculta inyectar las dependencias en un bean al momento de su creación usando un manejador externo. El bean sólo requiere definir la propiedad requerida en su código así como el método de establecimiento (set() method). La fuente primaria de la inyección de dependencias es un archivo de configuración en formato XML. Por ejemplo productService requiere hacer cierta operación sobre customerService la referencia de customerService debe ser inyectada en la propiedad customer de com.article.ProductService en la próximo figura se presenta un ejemplo de cómo se mapearía esta configuración en el respectivo archivo XML



La Programación Enfocada a Aspectos (Aspect-Orient Programming AOP) faculta implementar la mayoría de los servicios comunes (como empleo de transacciones seguridad logging etc.) que pueden ser aplicados en múltiples componentes. En el caso del uso de AOP no se necesita ningún conocimiento acerca de cómo han sido enmascarados (wrapped2) los servicios. AOP es usada en Spring [8] para

Proveer servicios de aplicación (enterprise services) declarativos. Ejemplo declarar el empleo de transacciones
Permitir a los usuarios la facilidad de implementar sus propios aspectos personalizados

Spring provee un número de servicios adicionales que son basados en IoC y AOP. Estos servicios deben ser comparados con sus equivalentes en EJB para poder tener un buen criterio de evaluación.