Configurar Spring Con Maven en Eclipse
Configurar Spring Con Maven en Eclipse
Configurar Spring Con Maven en Eclipse
Pasos a seguir:
- Agregaremos Spring a nuestras dependencias en el pom.xml.
- Agregamos al fichero web.xml los parmetros para usar Spring.
- Definimos el fichero applicationContext.xml dentro de resource\spring\
- Ejemplo de IoC en clases java.
1.) Agregaremos Spring a nuestras dependencias en el pom.xml:
pom.xml DependenciasAdd y buscamos la dependencia "org.springframework. En los
resultados de bsqueda, seleccionamos la dependencia y versin correcta, en nuestro caso
"spring-2.5.6.jar".
dependencias.
</web-app>
3.) Definimos el fichero applicationContext.xml dentro de resource\spring\
<?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:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd"
default-autowire="no" >
<!-- Incluimos los otros ficheros de configuracin -- >
<import resource="spring/spring-web.xml"/>
<import resource="spring/spring-beans.xml"/>
<import resource="spring/manager-context.xml"/>
<import resource="spring/hibernate-context.xml"/>
<import resource="datasource-context.xml"/>
<!-- Podemos leer los .properties a partir de Spring 2.5 de la siguiente manera -- >
<context:property-placeholder location="lang/fichero.properties"/>
</beans>
Un ejemplo de los ficheros de configuracin que importamos (Ej. Manager-context.xml
) en nuestro applicationContext.xml:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util-3.0.xsd">
<bean id="draftManager" class="es.aragon.sfe.core.manager.impl.DraftManagerImpl">
<property name="draftDAO" ref="draftDAO"/>
</bean>
<bean id="draftDAO" class="es.aragon.sfe.core.dao.impl.DraftDaoImpl">
<property name="sessionFactory" ref="sessionFactory"/>
</bean>
<bean id="abogadoService" class="seinsir.gestionprocesal.abogado.service.AbogadoBean"/>
Ms fcil todava con context:property-placeholder (OJO: slo disponible a partir de Spring 2.5)
<context:property-placeholder location="classpath:fichero.properties" />
Y listo. Ejecutamos nuestro Main para comprobar que la inyeccin se ha realizado correctamente, y
que incluso el nmero se ha inyectado en un Integer. No obstante, deberemos tener cuidado con estas
conversiones ya que son susceptibles de provocar un hermoso java.lang.NumberFormatException.
Nota: se pueden importar .properties desde cualquier ubicacin utilizando un location como
file:///C:\\configuraciones\\config.properties. Esta posibilidad puede ser interesante a la hora de
simplificar la configuracin de aplicaciones web.
Ahora tendremos que anotar el bean con @Service para que los instancie el contenedor y hacer la
inyeccin mediante @Value. Esta inyeccin se va a hacer directamente en los atributos por lo que se
puede prescindir de los setters si se crearon slo para poder inyectar las dependencias.
package com.danielme.blog.spring.properties;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
@Service
public class BeanSpring{
@Value("${valor.cantidad}")
private Integer cantidad;
@Value("${valor.usuario}")
private String usuario;
public Integer getCantidad(){
return cantidad;
}
public String getUsuario() {
return usuario;
}
Como vemos, gracias a Spring 3.1 podemos seguir reduciendo los XML en favor del uso de
anotaciones siguiendo la tendencia impulsada por JEE y que poco a poco se va imponiendo en el
mundo Spring.
En el caso de que estemos usando una versin a anterior a Spring 3.1, se puede realizar tambin la
inyeccin mediante autowired definiendo los valores de los properties como beans de Spring de la
siguiente forma:
<bean id="cantidad" class="java.lang.Integer">
<constructor-arg value="${valor.cantidad}"/>
</bean>
<bean id="usuario" class="java.lang.String">
<constructor-arg value="${valor.usuario}"/>
</bean>
Es una solucin menos elegante y limpia que la anterior pero nos permite seguir definiendo y
configurando los beans con anotaciones en versiones anteriores de Spring que, por otra parte,
tampoco podemos calificar como antiguas ya que Spring 3.1 se public en diciembre de 2011.
Nota: Podemos tambin leer fichero.properties desde una clase java de la siguiente manera:
import java.util.Properties;
public void conectar() {
properties = new Properties();
String url;
String login;
String password;
try {
//Cargamos los datos de nuestro fichero.properties
properties.load(ConnectionOracle.class.getClassLoader().
getResourceAsStream("lang/fichero.properties"));
} catch (IOException ex) {
LOG.error("Existe un error al cargar el properties :"+ex);
ex.printStackTrace();
}
url=properties.getProperty("url.oracle.server");
login=properties.getProperty("url.oracle.server.usuario");
password=properties.getProperty("url.oracle.server.password");
conectar(url, login, password);
}