Bienvenido a re-orientation! Esperamos que encuentres lo que buscas

El business-config.xml. Configuración de la capa de servicios


Parte del manual paso a paso para desarrollar una aplicación web con Spring Framework + Spring Security contra una base de datos MySQL.

Vamos a trabajar ahora en la configuración de la capa de negocios (o capa de servicios) de nuestro proyecto, que centralizaremos en el fichero business-config.xml.

La decisión de separar los ficheros de configuraciones de las diferentes capas es una consideración de diseño tomada con el objetivo de facilitar el desarrollo y mantenimiento independiente de cada una de éstas. Aunque esta es la forma más común de estructurar un proyecto web, existen otros criterios a aplicar; una vez comprendido el ejemplo y con la práctica, cada cual sacará sus propias conclusiones.

En la capa de servicios funcionaremos por anotaciones, dando uso al estereotipo @service, para no tener que declarar los beans asociados; en su lugar debemos indicarle a Spring los paquetes que debe escanear para encontrarlos.

Usaremos la etiqueta component-scan, indicando con el atributo base-package el paquete a escanear:

<context:component-scan base-package="com.reor.app01.service"/>

Las configuraciones asociadas a la capa de persistencia las importaremos en lugar de declararlas directamente. Estas declaraciones aparecerán en el fichero datasource-config.xml que detallaremos más adelante.

<import resource="datasource-config.xml"/>

Como hemos comentado antes, la disgregación responde al criterio de diseño que se ha tenido en cuenta y no tiene que ser el mismo para todos los desarrolladores, las configuraciones de la capa de persistencia las podríamos sencillamente copiar aquí,

También vamos a habilitar, desde nuestro business-config.xml, el uso de transacciones mediante anotaciones: @Transactional.

<tx:annotation-driven />

Una vez habilitadas, declaramos elmanejador de transacciones que vamos a usar, especificando la fuente de datos asociada y el calificador para indicarlo a nivel de código.

<bean id="transactionManagerApp01" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    	<property name="dataSource" ref="dataSource"/>
    	<qualifier value="txApp"/>
    </bean>  

Al igual que hicimos antes con los beans de servicios, los beans de acceso a datos tampoco los vamos a declarar directamente ya que también usaremos anotaciones. Declararemos en la siguiente línea, la ruta donde Spring va a buscar los DAOs marcados con el estereotipo @Repository.

<context:component-scan base-package="com.reor.app01.dao.jdbc"/>

Finalmente, nuestro business-config.xml queda así:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context"
	xmlns:tx="http://www.springframework.org/schema/tx"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
		http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd
		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
 
     <import resource="datasource-config.xml"/>
    <context:component-scan
            base-package="com.reor.app01.service"/>
    <context:property-placeholder location="classpath:spring/data-access.properties"/>

    <tx:annotation-driven />
    
    <bean id="transactionManagerApp01" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    	<property name="dataSource" ref="dataSource"/>
    	<qualifier value="txApp"/>
    </bean>    	
    <context:component-scan base-package="com.reor.app01.dao.jdbc"/> 
</beans>

Terminos Tecnología: