Curso Spring - Ejercicio06-ConcursoTalentos-3

Anuncio
Ejercicio: Concurso Talentos v3
Ejercicio
Proyecto Concurso de Talentos v3
Curso de Spring Framework
© Derechos
© Derechos
Reservados
Reservados
GlobalGlobal
Mentoring
Mentoring
2011 2012
Ejercicio: Concurso Talentos v3
Objetivo del Ejercicio
•El
objetivo del ejercicio es modificar el proyecto de Concurso de
Talentos para poner en práctica la inyección de dependencias por
setter.
Al finalizar deberemos tener el Proyecto Concurso Talentos v2 con las
siguientes clases:
Curso de Spring Framework
2
© Derechos
© Derechos
Reservados
Reservados
GlobalGlobal
Mentoring
Mentoring
2011 2012
Ejercicio: Concurso Talentos v3
Músico Virtuoso
•
Demos la bienvenida a un nuevo concursante, Jason, el cual es un
músico virtuoso.
•
Así que a continuación agregaremos algunas clases más a nuestro
proyecto para definir las características de este sobresaliente
músico.
Curso de Spring Framework
© Derechos
© Derechos
Reservados
Reservados
GlobalGlobal
Mentoring
Mentoring
2011 2012
Ejercicio: Concurso Talentos v3
Paso 1. Crear la Interface Instrumento
Crear la interface Instrumento.java y agregar el siguiente código:
package concursantes;
public interface Instrumento {
void tocar();
}
Curso de Spring Framework
4
© Derechos
© Derechos
Reservados
Reservados
GlobalGlobal
Mentoring
Mentoring
2011 2012
Ejercicio: Concurso Talentos v3
Paso 2. Crear la clase Piano
Crear la clase Piano.java y agregar el siguiente código:
package concursantes;
public class Piano implements Instrumento {
public void tocar() {
System.out.println("Clin clin clin clin...");
}
}
Curso de Spring Framework
5
© Derechos
© Derechos
Reservados
Reservados
GlobalGlobal
Mentoring
Mentoring
2011 2012
Ejercicio: Concurso Talentos v3
Paso 3. Crear la clase Saxofon
Crear la clase Saxofon.java y agregar el siguiente código:
package concursantes;
public class Saxofon implements Instrumento {
public void tocar() {
System.out.println("Tuu tuu tuu tuu...");
}
}
Curso de Spring Framework
6
© Derechos
© Derechos
Reservados
Reservados
GlobalGlobal
Mentoring
Mentoring
2011 2012
Ejercicio: Concurso Talentos v3
Paso 4. Crear la clase Musico
Crear la clase Musico.java y agregar el siguiente código:
package concursantes;
public class Musico implements Concursante {
private String cancion;
private Instrumento instrumento;
public Musico() {
}
public void ejecutar() throws EjecucionException {
System.out.println("Tocando " + cancion + ": ");
instrumento.tocar();
}
public String getCancion() {
return cancion;
}
public void setCancion(String cancion) {
this.cancion = cancion;
}
public Instrumento getInstrumento() {
return instrumento;
}
public void setInstrumento(Instrumento instrumento) {
this.instrumento = instrumento;
}
}
Curso de Spring Framework
7
© Derechos
© Derechos
Reservados
Reservados
GlobalGlobal
Mentoring
Mentoring
2011 2012
Ejercicio: Concurso Talentos v3
Paso 5: Configurar los beans en Spring
•
A continuación declaramos los bean en Spring y realizamos la
inyección de Valores por Setter, agregando los siguientes beans al
archivo applicationContext.xml :
<!-- Codigo Musico -->
<bean id="piano" class="concursantes.Piano"/>
<bean id="jasonPiano" class="concursantes.Musico">
<property name="cancion" value="Noche de Paz"/>
<property name="instrumento" ref="piano"></property>
</bean>
<!-- cambio de instrumento -->
<bean id="jasonSax" class="concursantes.Musico">
<property name="cancion" value="Equinox"/>
<!-- bean interno (inner bean) -->
<property name="instrumento">
<bean class="concursantes.Saxofon"/>
</property>
</bean>
Curso de Spring Framework
© Derechos
© Derechos
Reservados
Reservados
GlobalGlobal
Mentoring
Mentoring
2011 2012
Ejercicio: Concurso Talentos v3
Paso 6: Modificar la clase Test
•
Reemplazar el código de la clase TestConcursoTalentos.java por el
siguiente:
@Test
public void testMalabarista() {
logger.info("Inicio de ejecutar Malabarista");
package test;
import static org.junit.Assert.assertEquals;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.junit.Before;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import
org.springframework.context.support.ClassPathXmlApplicationContext;
int noPelotas = 10;
malabarista1.ejecutar();
assertEquals(noPelotas, ((Malabarista) malabarista1).getPelotas());
import concursantes.Concursante;
import concursantes.Malabarista;
import concursantes.Musico;
noPelotas = 15;
malabarista2.ejecutar();
assertEquals(noPelotas, ((Malabarista) malabarista2).getPelotas());
public class TestConcursoTalentos {
logger.info("Fin de Ejecutar MalabaristaRecitador");
private static Log logger =
LogFactory.getLog("TestConcursoTalentos");
private Concursante malabarista1;
private Concursante malabarista2;
private Concursante musico1;
private Concursante musico2;
logger.info("Inicio de ejecutar Pianista");
logger.info("Fin de Ejecutar Malabarista");
logger.info("Inicio de ejecutar MalabaristaRecitador");
String cancion = "Noche de Paz";
musico1.ejecutar();
assertEquals(cancion, ((Musico) musico1).getCancion());
logger.info("Fin de Ejecutar Pianista");
@Before
public void before() {
ApplicationContext ctx = new ClassPathXmlApplicationContext(
"applicationContext.xml");
malabarista1 = (Concursante) ctx.getBean("solei");
malabarista2 = (Concursante) ctx.getBean("soleiRecitador");
musico1 = (Concursante) ctx.getBean("jasonPiano");
musico2 = (Concursante) ctx.getBean("jasonSax");
}
logger.info("Inicio de ejecutar Saxofonista");
cancion = "Equinox";
musico2.ejecutar();
assertEquals(cancion, ((Musico) musico2).getCancion());
logger.info("Fin de Ejecutar Saxofonista");
}
}
Curso de Spring Framework
© Derechos
© Derechos
Reservados
Reservados
GlobalGlobal
Mentoring
Mentoring
2011 2012
Ejercicio: Concurso Talentos v3
Paso 7: Ejecutar el Test
•
Ejecutamos el test como JUnit y obtenemos el siguiente resultado:
Curso de Spring Framework
© Derechos
© Derechos
Reservados
Reservados
GlobalGlobal
Mentoring
Mentoring
2011 2012
Descargar