ejercicio 3 · 2012. 5. 21. · ejercicio 3. proyecto intérprete . title: diapositiva 1 author:...
Post on 27-Sep-2020
11 Views
Preview:
TRANSCRIPT
© Derechos Reservados Global Mentoring 2011 Curso de Spring Framework © Derechos Reservados Global Mentoring 2012
Ejercicio 3
Proyecto Intérprete
www.globalmentoring.com.mx Curso de Spring Framework
© Derechos Reservados Global Mentoring 2011 Curso de Spring Framework © Derechos Reservados Global Mentoring 2012
Objetivo del Ejercicio
•El objetivo del ejercicio del Proyecto Intérprete. Al finalizar deberemos
observar la siguiente salida:
2
Ejercicio 3. Proyecto Intérprete
© Derechos Reservados Global Mentoring 2011 Curso de Spring Framework © Derechos Reservados Global Mentoring 2012
Proyecto Intérprete versión 1
traductor1
Intérprete Español
Intérprete Español o Inglés
Clase de Prueba
traductor1
Instancia el
bean
manualmente
El bean de traductor NO contiene las dependencias,
por lo que manualmente debemos instanciar e
inyectar por nuestra cuenta
Si no tenemos una Interfaz de Intérprete NO podemos cambiar de Interprete
fácilmente
Intérprete Inglés
Ejercicio 3. Proyecto Intérprete
© Derechos Reservados Global Mentoring 2011 Curso de Spring Framework © Derechos Reservados Global Mentoring 2012
Paso 1. Crear un proyecto Maven
Creamos un nuevo proyecto Maven:
4
Ejercicio 3. Proyecto Intérprete
© Derechos Reservados Global Mentoring 2011 Curso de Spring Framework © Derechos Reservados Global Mentoring 2012
Paso 1. Crear un proyecto Maven (cont)
Filtramos los wizards y escribimos maven, seleccionando un nuevo
proyecto Maven
5
Ejercicio 3. Proyecto Intérprete
© Derechos Reservados Global Mentoring 2011 Curso de Spring Framework © Derechos Reservados Global Mentoring 2012
Paso 1. Crear un proyecto Maven (cont)
Creamos un proyecto simple de Maven
6
Ejercicio 3. Proyecto Intérprete
© Derechos Reservados Global Mentoring 2011 Curso de Spring Framework © Derechos Reservados Global Mentoring 2012
Paso 1. Crear un proyecto Maven (cont)
Escribimos los valores por siguientes:
7
Ejercicio 3. Proyecto Intérprete
© Derechos Reservados Global Mentoring 2011 Curso de Spring Framework © Derechos Reservados Global Mentoring 2012
Paso 2. Configuración del Proyecto (cont) Indicamos que no excluya ningún archivo en resources:
8
Ejercicio 3. Proyecto Intérprete
© Derechos Reservados Global Mentoring 2011 Curso de Spring Framework © Derechos Reservados Global Mentoring 2012
Paso 3. Creamos la clase InterpreteEspanol Crear la clase InterpreteEspanol.java y agregar el siguiente código:
package beans; public class InterpreteEspanol { public void saludar() { System.out.println("Hola, mi nombre es "); } public void despedirse() { System.out.println("Hasta pronto..."); } }
9
Ejercicio 3. Proyecto Intérprete
© Derechos Reservados Global Mentoring 2011 Curso de Spring Framework © Derechos Reservados Global Mentoring 2012
Paso 4. Creamos la clase Traductor Crear la clase Traductor.java y agregar el siguiente código:
package beans; public class Traductor { private InterpreteEspanol interprete; private String nombre; public void hablar() { this.interprete.saludar(); System.out.println(nombre); this.interprete.despedirse(); } public InterpreteEspanol getInterprete() { return interprete; } public void setInterprete(InterpreteEspanol interprete) { this.interprete = interprete; } public String getNombre() { return nombre; } public void setNombre(String nombre) { this.nombre = nombre; } }
10
Ejercicio 3. Proyecto Intérprete
© Derechos Reservados Global Mentoring 2011 Curso de Spring Framework © Derechos Reservados Global Mentoring 2012
Paso 5. Creamos la clase PruebaInterprete Crear la clase PruebaInterprete.java y agregar el siguiente código:
package prueba; import beans.InterpreteEspanol; import beans.Traductor; public class PruebaInterprete { public static void main(String[] args) { Traductor traductor = new Traductor(); InterpreteEspanol interprete = new InterpreteEspanol(); //El interprete se inyecta manualmente //Y solamente puede recibir un interprete en Español //No un interprete en Inglés u otros idiomas traductor.setInterprete(interprete); traductor.setNombre("Carlos Esparza"); traductor.hablar(); } }
11
Ejercicio 3. Proyecto Intérprete
© Derechos Reservados Global Mentoring 2011 Curso de Spring Framework © Derechos Reservados Global Mentoring 2012
Paso 6. Visualizar la salida La salida del programa debe ser similar a la siguiente:
Los problemas de este código son los siguientes:
1. No podemos cambiar de interprete de manera simple, ya que está
asociado con la clase concreta InterpreteEspanol.java 2. La inyección de dependencias debe ser realizada por nosotros,
pudiendo delegarla a un framework.
12
Ejercicio 3. Proyecto Intérprete
© Derechos Reservados Global Mentoring 2011 Curso de Spring Framework © Derechos Reservados Global Mentoring 2012
Proyecto Intérprete versión 2
traductor1
Implementación
Español
Dependencia
Inyectada
Clase de Prueba
traductor1
Recupera el
Bean de la
Fábrica
El bean de Traductor ya contiene las dependencias
inyectadas
Spring configura los Beans y sus
dependencias
iInterprete
iIn
terp
rete
Implementación
Inglés
Al manejar Interfaces podemos cambiar fácilmente la
implementación sin afectar el código del traductor
Ejercicio 3. Proyecto Intérprete
© Derechos Reservados Global Mentoring 2011 Curso de Spring Framework © Derechos Reservados Global Mentoring 2012
Paso 7. Agregar librerías de Spring (cont) De la misma manera que en el ejercicio 2, agregamos las siguientes
librerías a nuestro proyecto:
• spring-core
• spring-context-support
• spring-test
• junit
En automático al guardar el archivo de pom.xml descargará las
librerías y dependencias necesarias para el proyecto. Quedando el
archivo pom.xml con las siguientes dependencias:
14
Ejercicio 3. Proyecto Intérprete
© Derechos Reservados Global Mentoring 2011 Curso de Spring Framework © Derechos Reservados Global Mentoring 2012
Paso 8. Crear Interfaz Interprete Crear la Interfaz Interprete.java y agregar el siguiente código:
package beans; public interface Interprete { public void saludar(); public void despedirse(); }
15
Ejercicio 3. Proyecto Intérprete
© Derechos Reservados Global Mentoring 2011 Curso de Spring Framework © Derechos Reservados Global Mentoring 2012
Paso 9. Refactorización clase InterpreteEspanol
Sustituir el código de la clase InterpreteEspanol por el siguiente código
(el único cambio es la implementación de la interface):
package beans; public class InterpreteEspanol implements Interprete { public void saludar() { System.out.println("Hola, mi nombre es "); } public void despedirse() { System.out.println("Hasta pronto..."); } }
16
Ejercicio 3. Proyecto Intérprete
© Derechos Reservados Global Mentoring 2011 Curso de Spring Framework © Derechos Reservados Global Mentoring 2012
Paso 10. Crear la clase InterpreteIngles Crear la clase InterpreteIngles.java y agregar el siguiente código:
package beans; public class InterpreteIngles implements Interprete { public void saludar() { System.out.println("Hello, my name is "); } public void despedirse() { System.out.println("Bye..."); } }
17
Ejercicio 3. Proyecto Intérprete
© Derechos Reservados Global Mentoring 2011 Curso de Spring Framework © Derechos Reservados Global Mentoring 2012
Paso 11. Refactorización clase Traductor Modificar la clase Traductor.java con el siguiente código (En lugar de
utilizar la clase concreta, ahora utilizamos la interface Interprete):
package beans; public class Traductor { private Interprete interprete; private String nombre; public void hablar(){ this.interprete.saludar(); System.out.println( nombre ); this.interprete.despedirse(); } public Interprete getInterprete() { return interprete; } public void setInterprete(Interprete interprete) { this.interprete = interprete; } public String getNombre() { return nombre; } public void setNombre(String nombre) { this.nombre = nombre; } }
18
Ejercicio 3. Proyecto Intérprete
© Derechos Reservados Global Mentoring 2011 Curso de Spring Framework © Derechos Reservados Global Mentoring 2012
Paso 12. Creación archivo applicationContext.xml
A continuación vamos a crear el archivo applicationContext.xml
19
Ejercicio 3. Proyecto Intérprete
© Derechos Reservados Global Mentoring 2011 Curso de Spring Framework © Derechos Reservados Global Mentoring 2012
Paso 12. Creación archivo applicationContext.xml
(cont) Seleccionamos el namespace de beans
20
Ejercicio 3. Proyecto Intérprete
© Derechos Reservados Global Mentoring 2011 Curso de Spring Framework © Derechos Reservados Global Mentoring 2012
Paso 13. Creación archivo applicationContext.xml
(cont)
Agregamos la definición de los siguientes beans dentro del tag de
<beans>
<!-- definimos al inicio los beans menos dependientes --> <!-- equivalente al código Java: InterpreteEspanol interpreteEspanol = new InterpreteEspanol(); --> <bean id="interpreteEspanol" class="beans.InterpreteEspanol"/> <bean id="interpreteIngles" class="beans.InterpreteIngles"/> <!-- definimos al último los beans menos dependientes --> <bean id="traductorEspanol" class="beans.Traductor"> <!-- equivalente a: traductor.setInterprete(interpreteEspanol); --> <property name="interprete" ref="interpreteEspanol"/> <!-- equivalente a: traductor.setNombre("Carlos Esparza"); --> <property name="nombre" value="Carlos Esparza"/> </bean> <bean id="traductorIngles" class="beans.Traductor"> <!-- Podemos agregar un interprete distinto a la clase traductor debido a que utilizamos un tipo interfaz Interprete --> <property name="interprete" ref="interpreteIngles"/> <property name="nombre" value="Lourdes Peña" /> </bean>
21
Ejercicio 3. Proyecto Intérprete
© Derechos Reservados Global Mentoring 2011 Curso de Spring Framework © Derechos Reservados Global Mentoring 2012
Paso 14. Creamos la Clase de prueba (cont)
Agregamos el código siguiente a la clase de PruebaSpring: package prueba; import org.springframework.beans.factory.BeanFactory; import org.springframework.context.support.ClassPathXmlApplicationContext; import beans.Traductor; public class PruebaInterpreteSpring { public static void main(String[] args) { BeanFactory factory = new ClassPathXmlApplicationContext("applicationContext.xml"); Traductor traductor1 = (Traductor) factory.getBean("traductorEspanol"); traductor1.hablar(); System.out.println(); Traductor traductor2 = (Traductor) factory.getBean("traductorIngles"); traductor2.hablar(); } }
22
Ejercicio 3. Proyecto Intérprete
© Derechos Reservados Global Mentoring 2011 Curso de Spring Framework © Derechos Reservados Global Mentoring 2012
Paso 15. Ejecución del Proyecto
Ejecutamos el proyecto obteniendo el siguiente resultado:
Podemos observar que obtenemos ya los beans traductores listos
para ser utilizados, y no tuvimos que manejar directamente las
dependencias, sino que Spring sea quien administre estas
dependencias.
23
Ejercicio 3. Proyecto Intérprete
top related