Ejercicio 3 Proyecto Intérprete Curso de Spring Framework

Documentos relacionados
Ejercicio 2 Hola Mundo con Spring Framework Curso de Spring Framework

Escrito por Renan Huanca Sábado, 28 de Febrero de :46 - Actualizado Sábado, 28 de Febrero de :09

Ejercicio 4. EJB Sesión - Sistema SGA. Java EE. Ejercicio 4. EJB Sesión Sistema SGA. Curso de Java EE

Ejercicio 2. HolaMundo con Java EE. Java EE. Ejercicio 2. Hola Mundo con Java EE

Universidad ORT - Arquitectura de Software. Requisitos

Estructura de un programa en Java

ATLAS MANUAL DE USUARIO DEL ARQUETIPO JAR

Juan Galán García Rubén García Navamuel Javier Rodríguez Camarma Álvaro Rodríguez Moya

ESCUELA SUPERIOR POLITECNICA DE CHIMBORAZO ESCUELA DE INGENIERIA EN SISTEMAS

INTERFACE COMPARATOR. DIFERENCIAS ENTRE COMPARATOR Y COMPARABLE. CLASE COLLECTIONS. EJERCICIOS RESUELTOS. (CU00918C)

Derechos de Acceso: COMPOSICION

Patrón Fábrica Abstracta. Julio Ariel Hurtado Alegría Ingeniería de Software II 2015

Base de datos En este tutorial vamos a trabajar con la siguiente base de datos. Programación II Turno Mañana

EJEMPLO EJERCICIO RESUELTO CON POLIMORFISMO, SOBREESCRITURA DE MÉTODOS Y HERENCIA JAVA. CÓDIGO (CU00691B)

Manual de Desarrollador Android: Aplicación Desarrollada por Juan Pablo Rodriguez Montoya & Gabriel Hernando Fuentes Amorocho

Ejercicio 3. Manejo de la Vista y Eventos en Android Ejercicio 3 Curso de Android con Java Derechos Res Dere e c rvados hos Res Gl e obal rva

Tema: Introducción al IDE de Microsoft Visual C#.

ATLAS MANUAL DE INTEGRACIÓN

Java en 2 horas. Rodrigo Santamaría

Departamento de Soporte Occidente. Módulo Misceláneos. Cambiar usuarios:

Lección 2: Creando una Aplicación en Java. 1. Estructura del archivo de una clase. 3. Definiendo clases fundamentos

Curso de Spring Framework

Subtitular Vídeos José Luis Fernández. I.E.S. Leiras Pulpeiro

Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones

Conexión SQL Server y C# (Consola)

Aquí se declaran los. Aquí se declaran los métodos de la clase. *Atributos de la clase

Requisitos. Universidad ORT Arquitectura de Software

Manual Para Hacer Ejecutables de aplicaciones JAVA usando Advanced Installer 7.6

ATLAS MANUAL DE USUARIO Servicios Web

FACULTAD DE ECONOMIA Y ADMINISTRACION DEPARTAMENTO DE CIENCIAS DE LA COMPUTACION CÁTEDRA PROGRAMACION GENERAL. Trabajo Práctico Nº 4

INTRODUCCION A LA PROGRAMACION EN JAVA

ATLAS MANUAL DE USUARIO Servicios Web

Experto Universitario Java Enterprise Spring

Ingeniería del Software Swing

Conceptos a tratar. Fundamentos de la Programación Orientada a Objetos Ampliación sobre clases y objetos

Esquema de trabajo de SPRING MVC

TUTORIAL CONEXIÓN SQLSERVER CON JAVA DESDE ECLIPSE

Arquitecturas cliente/servidor

POLIMORFISMO. import java.util.*; class Instrumento { public void tocar() { System.out.println("Instrumento.tocar()"); public String tipo() {

Multitarea en Java. Rafa Caballero - UCM

Construcciones del Lenguaje Java

PROYECTO FIGURAS DIAGRAMA DE FLUJO

Programación Orientada a Objetos con Java. Elementos Básicos del Lenguaje Java. Relación entre clases. Ejemplo de Clase: Punto !

Desarrollo de Sistemas Software Basados en Servicios y Componentes

INTRODUCCION A LA PROGRAMACION EN JAVA

TECNICAS DE PROGRAMACION Universidad Católica Los Angeles de Chimbote METODOS CONSTRUCTORES Y LA REFERENCIA THIS

ALTAS MANUAL DE USUARIO DEL SERVICIO DE CERTIFICADOS

Creando archivos *.jar 2008

Modelo de Objetos Distribuidos

Serialización de datos en C# en Binario, Soap y Xml

PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez

Clase adicional 2. Estructuras básicas de control. Temas

class Nombre_Clase extends Nombre_SuperClase { cuerpo de la clase extendida }

PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez

Por ejemplo, considerando la jerarquía de herencia de Figuras Geométricas de la siguiente figura, es posible hacer uso del concepto de polimorfismo.

! Qué es la POO?! Un paradigma de programación. ! No hay paradigmas mejores ni peores! Todos tienen sus ventajas e inconvenientes

Tema 7.- Fundamentos de la Programación Orientada a Objetos

Aplicaciones de Escritorio

Taller: Introducción a Windows Communication Foundation

Experto Universitario Java Enterprise Spring

INSTALACIÓN JDK. Guillermo Figueroa

Tutorial básico del entorno de desarrollo Eclipse.

Ejercicio 6. Persistencia con JPA - Sistema SGA. Java EE. Ejercicio 6. Persistencia con JPA Sistema SGA. Curso de Java EE

Fundamentos de Programación CAPÍTULO 3 EL LENGUAJE C# Ing. Bruno López Takeyas, M.C. 1

Programación de sistemas

Java desde Consola Utilizando Java sin Path

ATLAS MANUAL DE USUARIO SERVICIO DE AUDITORIA

UNIDAD 4. MODIFICAR TABLAS DE DATOS

Introducción a la Programación Orientada a Objetos

CONFIGURACIÓN RECOMENDADA PARA FIRMA ELECTRÓNICA (Vacunas OVZNet)

Conceptos más avanzados de Programación Orientada a Objetos

Componentes Distribuidos EJBs. Ing. Cesar Julio Bustacara Medina

1. Qué tipos de relación hay entre las siguientes clases?

Ejercicios del tema 7: Clases y objetos

Utilización Crystal Reports 2008 Usando Bussiness Object V4.0

Guía - Taller # 2 (JAVA)

En este artículo vamos a conocer los tipos de datos que podemos manejar programando en C.

Agenda..NET C# Laboratorio #1

ALTAS MANUAL DE USUARIO ENVÍO DE CORREOS ELECTRÓNICOS

EBRARY. Descripción general de la base Permite el acceso a más de 31,800 libros electrónicos en texto completo de múltiples disciplinas.

Enterprise JavaBeans 3. Aplicaciones Distribuidas

Pruebas de unidad con JUnit

1. Posicionarse en la vista Services y seleccionar el ítem Servers. En el menú contextual del Mouse seleccionar la opción Add Server

Curso Fundamentos de Informática Lección 7. Programación Orientada a Objetos

ATLAS MANUAL DE USUARIO SERVICIO DE FUSIÓN

Refactoring con Netbeans

Configuración preliminar de blender para usar el editor de video.

LA ESTRUCTURA DE DATOS PILA EN JAVA. CLASE STACK DEL API JAVA. EJEMPLO Y EJERCICIOS RESUELTOS. (CU00923C)

COMPONENTES Y CONTENEDORES. Ingeniería de Software II

ATLAS MANUAL DE USUARIO Servicios Web

Transcripción:

www.globalmentoring.com.mx Curso de Spring Framework Ejercicio 3 Proyecto Intérprete

Objetivo del Ejercicio El objetivo del ejercicio del Proyecto Intérprete. Al finalizar deberemos observar la siguiente salida: 2

Proyecto Intérprete versión 1 Clase de Prueba traductor1 Instancia el bean manualmente traductor1 Intérprete Español o Inglés Intérprete Español Intérprete Inglés 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

Paso 1. Crear un proyecto Maven Creamos un nuevo proyecto Maven: 4

Paso 1. Crear un proyecto Maven (cont) Filtramos los wizards y escribimos maven, seleccionando un nuevo proyecto Maven 5

Paso 1. Crear un proyecto Maven (cont) Creamos un proyecto simple de Maven 6

Paso 1. Crear un proyecto Maven (cont) Escribimos los valores por siguientes: 7

Paso 2. Configuración del Proyecto (cont) Indicamos que no excluya ningún archivo en resources: 8

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

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

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

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

iinterprete Ejercicio 3. Proyecto Intérprete Proyecto Intérprete versión 2 Clase de Prueba traductor1 Recupera el Bean de la Fábrica traductor1 iinterprete Dependencia Inyectada Implementación Español El bean de Traductor ya contiene las dependencias inyectadas Spring configura los Beans y sus dependencias Implementación Inglés Al manejar Interfaces podemos cambiar fácilmente la implementación sin afectar el código del traductor

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

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

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

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

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

Paso 12. Creación archivo applicationcontext.xml A continuación vamos a crear el archivo applicationcontext.xml 19

Paso 12. Creación archivo applicationcontext.xml (cont) Seleccionamos el namespace de beans 20

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

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

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