A continuacion se muestra el uso del atributo dependency-check con varios ejemplos
Librearias
commons-logging.jar
spring.jar
Listado de Interfaces
Interface Trabajo
package org.dracof.spring.depcheck;
public interface Trabajo {
}
Interface Domicilio
package org.dracof.spring.depcheck;
public interface Domicilio {
}
Interface Persona
package org.dracof.spring.depcheck;
import java.util.List;
public interface Persona {
public void setNombre(String nombre);
public void setApellido(String apellido);
public void setEdad(int edad);
public void setEstatura(float estatura);
public void setDomicilio(Domicilio domcilio);
public void setTrabajosList(List<Trabajo> trabajos);
public void setNombreAmigos (String[] amigos);
}
Implementaciones
Clase TrabajoImpl implementacion de Trabajo
package org.dracof.spring.depcheck.impl;
import org.dracof.spring.depcheck.Trabajo;
public class TrabajoImpl implements Trabajo {
//metodos e implementacion de trabajo
}
Clase DomicilioImpl implementacion de Domicilio
package org.dracof.spring.depcheck.impl;
import org.dracof.spring.depcheck.Domicilio;
public class DomicilioImpl implements Domicilio{
//metodos e implementacion de Domicilio
}
Clase PersonaImpl implementacion Persona
package org.dracof.spring.depcheck.impl;
import java.util.List;
import org.dracof.spring.depcheck.Domicilio;
import org.dracof.spring.depcheck.Persona;
import org.dracof.spring.depcheck.Trabajo;
public class PersonaImpl implements Persona {
private String nombre;
private String apellido;
private int edad;
private float estatura;
private Domicilio domicilio;
private List<Trabajo> trabajos;
private String[] amigos;
public void setApellido(String apellido) {
this.apellido = apellido;
}
public void setEdad(int edad) {
this.edad = edad;
}
public void setEstatura(float estatura) {
this.estatura = estatura;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public void setDomicilio(Domicilio domcilio) {
this.domicilio = domcilio;
}
public void setTrabajosList(List<Trabajo> trabajos) {
this.trabajos = trabajos;
}
public void setNombreAmigos(String[] amigos) {
this.amigos = amigos;
}
public String toString() {
StringBuilder s = new StringBuilder();
s.append("Nombre: " + nombre);
s.append("; Apellido: "+ apellido);
s.append("; Edad: " + edad);
s.append("; Estatura: " + estatura);
s.append("; Amigos: ");
for(String amigo:amigos) {
s.append(amigo+",");
}
return s.toString();
}
}
Application Context (applicationContext.xml)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING/DTD BEAN/EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd">
<beans>
<bean id="persona1" class="org.dracof.spring.depcheck.impl.PersonaImpl" dependency-check="none"/>
<bean id="persona3" class="org.dracof.spring.depcheck.impl.PersonaImpl" dependency-check="simple">
<property name="nombre" value="Dracof"/>
<property name="apellido" value="ApellidoDracof"/>
<property name="edad" value="28"/>
<property name="estatura" value="1.70"/>
<property name="nombreAmigos" value="Juanito, Pepito, Dracofito"/>
</bean>
<bean id="persona4" class="org.dracof.spring.depcheck.impl.PersonaImpl" dependency-check="objects">
<property name="domicilio">
<bean class="org.dracof.spring.depcheck.impl.DomicilioImpl"/>
</property>
<property name="trabajosList">
<list>
<bean class="org.dracof.spring.depcheck.impl.TrabajoImpl"/>
<bean class="org.dracof.spring.depcheck.impl.TrabajoImpl"/>
</list>
</property>
</bean>
<bean id="persona5" class="org.dracof.spring.depcheck.impl.PersonaImpl" dependency-check="all">
<property name="nombre" value="Dracof"/>
<property name="apellido" value="ApellidoDracof"/>
<property name="edad" value="28"/>
<property name="estatura" value="1.70"/>
<property name="domicilio">
<bean class="org.dracof.spring.depcheck.impl.DomicilioImpl"/>
</property>
<property name="trabajosList">
<list>
<bean class="org.dracof.spring.depcheck.impl.TrabajoImpl"/>
<bean class="org.dracof.spring.depcheck.impl.TrabajoImpl"/>
</list>
</property>
<property name="nombreAmigos" value="Juanito, Pepito, Dracofito"/>
</bean>
</beans>
Como se muestra el atributo dependency-check acepta none, simple, objects y all, siendo por default none.
Por ejemplo si se borra el setter nombreAmigos de persona5 que tiene dependency-check="all", Spring lanza
Exception in thread "main" org.springframework.beans.factory.UnsatisfiedDependencyException:
Error creating bean with name 'persona5' defined in class path resource [applicationContext.xml]:
Unsatisfied dependency expressed through bean property 'nombreAmigos': Set this property value or disable dependency checking for this bean.
Referencia:
Checking for dependencies
Descargar Proyectito
DependencyCheck.zip
Suerte.
No hay comentarios:
Publicar un comentario