WALLS, CRAIG
Agradecimientos
Sobre el autor
Prefacio
Introducción
A quién va dirigido este libro
Hoja de ruta
Convenciones
Código fuente
Sobre la ilustración de la cubierta
Parte I. Núcleo de Spring
1. Pasar a la acción
Simplificar el desarrollo en Java
Liberar el potencial de los POJO
Inyección de dependencias
Inyectar una hazaña en un caballero
La aplicación en funcionamiento
Aplicación de los aspectos
AOP en funcionamiento
Eliminar código reutilizable con plantillas
Contenedores para los bean
Trabajar con un contexto de aplicación
La vida de un bean
Componentes de Spring
Módulos de Spring
Contenedor del núcleo de Spring
Modulo AOP de Spring
Acceso de datos e integración
Web y acceso remoto
Pruebas
El catálogo de Spring
Spring Web Flow
Spring Web Services
Spring Security
Spring Integration
Spring Batch
Spring Social
Spring Mobile
Spring Dynamic Modules
Spring LDAP
Spring Rich Client
Spring.NET
Spring-Flex
Spring Roo
Extensiones de Spring
Novedades en Spring
Novedades en Spring 2.5
Novedades en Spring 3.0
Novedades en el catálogo Spring
Resumen
2. Conexión de bean
Declaración de bean
Configuración de Spring
Declarar un bean sencillo
Inyección mediante constructores
Inyectar referencias de objetos con constructores
Crear bean mediante métodos de fábrica
Determinar el ámbito de un bean
Inicialización y eliminación de bean
Uso predeterminado de init-method y destroy.method
Inyecciones en las propiedades del bean
Inyección de valores sencillos
Referencias a otros bean
Inyección de bean internos
Propiedades de conexión con el espacio de nombre p de Spring
Conexión de colecciones
Conexión de listas, conjuntos y matrices
Conexión de colecciones de elementos Map
Conexión de colecciones de propiedades
Cómo conectar nada (valores null)
Conexión con expresiones
Expresión de valores fundamentales SpEL
Valores literales
Referencias a bean, propiedades y métodos
Trabajar con tipos
Realizar operaciones sobre valores SpEL
Matemáticas con SpEL
Comparación de valores
Expresiones lógicas
Evaluación condicional
Expresiones regulares en SpEL
Filtrar colecciones con SpEL
Acceder a los miembros de una colección
Seleccionar miembros de la colección
Proyección de colecciones
Resumen
3. Minimizar la configuración XML en Spring
Conexión automática de propiedades de bean
Tipos de conexión automática
Conexión automática por nombre
Conexión automática por tipo
Constructores de conexión automática
Seleccionar el tipo de conexión automática óptimo de forma automática
Conexión automática predeterminada
Combinar conexiones automáticas y explícitas
Conexión mediante anotaciones
Uso de @Autowired
Conexión automática opcional
Calificar dependencias ambiguas
Creación de calificadores personalizados
Conexión automática basada en estándares con @Inject
Calificar propiedades @Injected
Creación de calificaciones personalizados JSR-330
Uso de expresiones con inyección de anotaciones
Detectar bean de forma automática
Anotar bean para la detección automática
Filtrar component-scan
Uso de la configuración basada en Java de Spring
Activar la configuración basada en Java
Definir una clase de configuración
Declarar un bean sencillo
Inyección mediante la configuración basada en Java de Spring
Resumen
4. Spring orientado a aspectos
Qué es la programación orientada a aspectos
Definición de la terminología AOP
Consejo
Puntos de cruce
Puntos de corte
Aspectos
Introducciones
Entrelazado
Compatibilidad de Spring con AOP
Los consejos de Spring se escriben en Java
Spring aconseja los objetos durante el tiempo de ejecución
Spring sólo admite puntos de cruce de método
Selección de puntos de cruce con puntos de corte
Escribir puntos de corte
Uso del designador bean() de Spring
Declarar aspectos en XML
Declarar antes y después de un consejo
Declaración en torno al consejo
Proporcionar parámetros al consejo
Incluir nuevas funcionalidades mediante aspectos
Anotación de aspectos
Anotaciones alrededor del consejo
Proporcionar argumentos al consejo anotado
Anotación de introducciones
Inyección de aspectos de AspectJ
Resumen
Parte II. Aspectos esenciales de las aplicaciones de Spring
5. Peticiones a la base de datos
Filosofía de acceso a datos de Spring
Introducción a la jerarquía de excepciones de Spring
Excepciones de persistencia en Spring independientes de plataforma
Fragmentos de captura no necesarios
Acceso a datos mediante plantillas
Uso de las clases de apoyo DAO
Configurar un origen de datos
Utilizar orígenes de datos JNDI
Utilizar un origen de datos agrupado
Origen de datos basado en controlador
Uso de JDBC con Spring
Gestión del código JDBC descontrolado
Trabajar con plantillas JDBC
Acceso a los datos utilizando SimpleJdbcTemplate
Uso de parámetros con nombre
Uso de las clases de apoyo DAO de Spring
Integración de Hibernate con Spring
Introducción a Hibernate
Declarar una sesión de fábrica de Hibernate
Crear DAO de Hibernate sin código de Spring
Spring y el API Java Persistence
Configurar una fábrica de gestor de entidad
Configuración de JPA gestionados por una aplicación
Configuración de JPA gestionados por un contenedor
Obtener un EntityManagerFactory desde JNDI
Escribir un DAO basado en JPA
Resumen
6. Gestión de transacciones
Funcionamiento de las transacciones
Cómo funcionan las transacciones en cuatro palabras
Compatibilidad para la gestión de transacciones de Spring
Elegir un gestor de transacciones
Transacciones JDBC
Transacciones de Hibernate
Transacciones del API Java Persistence
Transacciones del API de transacciones de Java
Programar transacciones en Spring
Declaración de transacciones
Definición de atributos de transacción
Comportamiento de propagación
Niveles de aislamiento
Sólo lectura
Tiempo de espera
Normas de reversión
Declaración de transacciones en XML
Definición de anotaciones basadas en transacciones
Resumen
7. Creación de aplicaciones Web con Spring MVC
Introducción a Spring MVC
Seguir una solicitud a través de Spring MVC
Configuración de Spring MVC
Crear un controlador básico
Configuración de Spring MVC basado en anotaciones
Definición del controlador de la página Inicio
Probar el controlador
Resolución de vistas
Resolución de vistas internas
Resolución de las vistas de Tiles
Definición de la vista de la página Inicio
Finalizar el contexto de aplicación de Spring
Gestión del controlador de entrada
Crear un controlador que procese información de entrada
Representación de la vista
Spring es un framework de código abierto imprescindible para facilitar el desarrollo de aplicaciones en Java. Spring 3 incorpora nuevas y potentes características como el lenguaje de expresiones SpEL, anotaciones para el contenedor IoC, compatibilidad con REST, servicios remotos, mensajería, seguridad, MVC, WebFlow, y mucho más.
Con un estilo práctico, Craig Walls presenta Spring de la forma más interesante para un desarrollador Java, incluyendo ejemplos procedentes de casos reales que se centran en las características y técnicas que realmente necesita aprender; desde los aspectos más básicos, pasando por los elementos comunes de una aplicación Spring, hasta su integración con otras aplicaciones y servicios.
Craig Walls es desarrollador de software en SpringSource. Autor reconocido, cuenta entre sus obras; XDoclet in Action y las dos ediciones anteriores
de Spring. Defensor del framework Spring participa como ponente
en charlas y conferencias. En la actualidad, vive en Plano, Texas.