A continuación, detallaremos los siguientes ficheros de configuración para finalizar con unas breves conclusiones:
applicationContext.xml
El fichero applicationContext.xml corresponde al contexto raíz de nuestro servicio. Es aquí donde se declaran las clases o beans de nivel general para que Spring pueda gestionarlos. Los beans configurados son los siguientes.- dataSource (línea 20): indica la fuente de datos, en este caso una base de datos embebida de tipo HSQL.
- jpaVendorAdapter (línea 25): necesario para indicar a Spring, que será Hibernate el framework que utilizaremos como proveedor JPA.
- entityManagerFactory (línea 30): será el objeto que Spring utilizará para interactuar con la base de datos. Hay dos propiedades fundamentales.
- packagesToScan: indica el paquete donde se encuentran los beans que representan las entidades de nuestro servicio, en este caso, libros. Como veremos más adelante, estas entidades estarán anotadas para que Hibernate pueda relacionarlas con su correspondiente representación en base de datos.
- jpaProperties: aquí se especifican las propiedades de Hibernate. En esta ocasión, se ha especificado el dialecto de base de datos a utilizar y el esquema por defecto, para que Hibernate cree las consultas SQL de forma adecuada.
- transactionManager (línea 44): declaración del tipo de gestor transaccional, en este caso JPA.
- databaseManager (línea 49): posibilita el uso de un gestor de base de datos HSQL. Este bean es opcional, pero el gestor permitirá modificar los datos fácilmente para la realización de pruebas.
dispatcher-servlet.xml
El fichero dispatcher-servlet.xml contiene la declaración de aquellos beans que están directamente relacionados con el servicio a implementar. A partir de esta configuración, Spring creará un Servlet que gestionará las peticiones que se realicen a la API, redireccionándolas a los controladores correspondientes.
En lugar de declarar los beans en el fichero XML de forma explícita, se ha optado por una configuración mediante anotaciones en las propias clases Java. Para ello, se han declarado las etiquetas necesarias para que Spring pueda detectar en qué clases se encuentran estas anotaciones.
- En la línea 18 se especifica el paquete raíz a partir del cual Spring buscará beans de nuestra lógica de negocio (servicios, componentes, etc.)
- En la línea 21 se especifica el paquete donde están los repositorios JPA que se utilizarán para acceder a base de datos,
- En la línea 24 se configuran las transacciones mediante anotaciones
- En la línea 26 se especifica que los controladores que procesarán las peticiones estarán también anotados.
Existen dos contextos de aplicación: un contexto raíz (applicationContext) y otro hijo (dispatcher-servlet). Los beans definidos en el contexto hijo tienen acceso a los definidos en el padre, pero no al revés. Es por ello que en el dispatcher-servlet se encuentran los componentes específicos del servicio web (p.ej. controllers), y en el applicationContext se encuentran los componentes generales (p.ej. acceso a datos).
web.xml
En el fichero web.xml se declara el dispacher-servlet para su inicialización al desplegar el servicio web en el servidor, indicando el fichero en el que se encuentra su configuración (línea 12). En las líneas 20 y 23 se especifica un listener necesario para que Spring inicialice el contexto de aplicación y la ubicación del fichero con su configuración.
Conclusiones
En la versión actual de Spring Framework, la posibilidad de anotar las propias clases Java simplifica mucho la configuración de nuestro servicio. En siguientes entradas, veremos cómo se deben realizar las anotaciones de las entidades, controladores, etc.
Pulsa aquí para acceder al código de esta entrada en mi repositorio Github
0 comentarios:
Publicar un comentario