Experto Universitario Java Enterprise Spring

Documentos relacionados
Ejercicios de AJAX y REST

1 Índice Introducción Propósito Alcance Modelo Arquitectónico Inicial... 3

ATLAS MANUAL DE USUARIO SERVICIO DE TRAZAS

Experto Universitario Java Enterprise Spring

ATLAS MANUAL DE USUARIO DEL ARQUETIPO WEB CON DOCUMENTUM

Java 7.0 Advanced Application Developer

Capítulo II. Arquitectura del Software

Sesión 20. MVC en ruby on rails. Luisa Fernanda Rincón Pérez

Capitulo 3. Test Driven Development

Generador de sistemas normalizados de historia clínica electrónica basados en el estándar OpenEHR

UNIVERSIDAD DE OVIEDO

Mejor Framework PythonOO + SOLID. Vivir sin Frameworks

MASTER JAVA AVANZADO Master en desarrollo de aplicaciones avanzadas con JAVA 2008

Oracle 12c DISEÑO Y PROGRAMACIÓN

Experto Universitario Java Enterprise Spring

Curso de Jboss Administración

Manual de Usuario Mail Hosting UNE

Entre los más conocidos editores con interfaz de desarrollo tenemos:

Curso de JavaServer Faces

Clases y Objetos. Informática II Ingeniería Electrónica

Grails: Desarrollo ágil de aplicaciones

1

Tutorial Servicios Web

REDES DE ÁREA LOCAL. APLICACIONES Y SERVICIOS EN WINDOWS

Capítulo 3 Usando GUIDE. 3.1 Acerca de GUIDE

Desarrollo Web con Grails Framework

1. El entorno de desarrollo Eclipse

Instalación y uso del framework Taylor para el modelaje de entidades JPA

Opciones disponibles para arrancar MAX

JAVA EE 5. Arquitectura, conceptos y ejemplos.

Ejercicio 7. Hibernate Tools y JPA en Eclipse IDE. Java EE. Ejercicio 7. Instalación Hibernate Tools. Curso de Java EE

Instalación de Tomcat7 en Ubuntu

Curso de Spring Framework

CASO PRÁCTICO Nº OBJETIVO 2. TEMAS A DESARROLLAR

MANUAL DE USUARIO APLICACIÓN SYSACTIVOS

DOMINIO CON IP DINÁMICA

Instrucciones para el despliegue de EJBs

Framework para el desarrollo ágil de aplicaciones

Nuevas tendencias: Virtualización de computadores / servidores

JAVATO: UN FRAMEWORK DE DESARROLLO JAVA LIBRE

MODELADO DE DATOS UTILIZACIÓN BASICA DE ERWIN

MANEJO DEL VNC Página 1

Pruebas de unidad con JUnit

GUIA DE LABORATORIO N 8 A(Netbeans-java,Glassfish)

Manual de Bajus. Gilberto José Vento Alvarez

Java Inicial (20 horas)

Curso de Android con Java

COPPEL MANUAL TÉCNICO MCC DE SISTEMAS PROGRAMACIÓN DESCRIPCIÓN DEL PROCESO DE ARQUITECTURA DE SOFTWARE

Generación de código para Hibernate desde modelos UML

ATLAS MANUAL DE USUARIO COMPONENTE CODIGO DE BARRAS

Redes de área local: Aplicaciones y servicios WINDOWS

Uso del servidor gráfico X en los servidores del CESGA mediante PuTTY y Cygwin

Carrera: Analista de Sistemas. Asignatura: Resolución de Problemas y Algoritmos

UNIVERSIDAD OBERTA DE CATALUNYA. Herramienta Visual para Diseñar formularios Web WformDesigner

Symfony. Framework para el desarrollo de aplicaciones Web con PHP

Arquitectura. 1.- Aplicaciones Web. Definición. Arquitectura clásica. Contenidos. 1.- Aplicaciones Web

Componentes de presentación

Curso de Spring Framework 4

Empezar en Android con buen pie

Laboratorio de Redes y Sistemas Operativos Laravel 5.0

How to Crear Servidor DNS ClearOS

Dominios y Subtipos en Geodatabase

7. CONCLUSIONES Y TRABAJOS FUTUROS

Apoyoempresarial.com. Configuración del para el dominio mapelor.com. Instrucciones de configuración del correo electrónico Página 1

Práctica 2: Instalación de un gestor de bases de datos relacionales y desarrollo de una aplicación Web con persistencia de datos

Desarrollo de Aplicaciones para ios

Empleo. CURSO FORMATIVO Desarrollo WEB JAVA EE. Coordinador Académico Antonio José Martín Sierra

Manual SBR. Pero antes de explicar las actividades que principalmente podemos desarrollar vamos a dar una visión global de la aplicación.

EDICIÓN Y FORMATO (II)

Spring. Sesión 7: Seguridad con Spring Security. Experto Universitario Java Enterprise

En la medida de tu esfuerzo e investigación podrás encontrar otras opciones iguales o mejores. La decisión es tuya, a publicar tu página!

SERVICIOS PARA EL DISEÑO E IMPLEMENTACIÓN DEL PROGRAMA INTEGRAL DE TRANSFORMACIÓN DIGITAL DE LA PROVINCIA DE LUGO: TRANSFORM@TIC

DISEÑO ASISTIDO POR ORDENADOR

SAP Business Workflow

Uso de HIBERNATE en una aplicación WEB DESARROLLO DE APLICACIONES PARA LA WEB II

La utilización de las diferentes aplicaciones o servicios de Internet se lleva a cabo respondiendo al llamado modelo cliente-servidor.

PROGRAMACIÓN PÁGINAS WEB CON PHP

IFCD04 Desarrollo de Aplicaciones Java: componentes web y aplicaciones de base de datos (JSP y JPA)

Unidad II. - Las técnicas en las que se basó, las categorías de análisis o ejes centrales que permiten guiar el proceso de investigación.

Manual de NetBeans y XAMPP

Web Services en Java. Taller de Programación. Instituto de Computación Facultad de Ingeniería Universidad de la República

Introducción a Protégé

TOPICOS IV: ING. YIM APESTEGUI FLORENTINO

Prácticas con Elastix Asterisk - Lab. 3

Academia Web. Horarios : Sábados de 2pm a 6pm (Grupo A) Sábados de 6pm a 10pm (Grupo B) Domingos de 9am a 1pm (Próximamente) : Laboratorios FISI

Facultad de Ingeniería Escuela de Ciencias y Sistemas Estructura de Datos Guatemala 2013 JSF + JSP + RichFaces

ATLAS MANUAL DE USUARIO DEL ARQUETIPO WEB PARA PROYECTOS NEXUS

Hacer Realidad BPM en su Organización ADOPTAR BPM A PARTIR DE UN PROYECTO O NECESIDAD DE AUTOMATIZACIÓN

COPIAS DE SEGURIDAD CON COBIAN BACKUP INSTALACIÓN Y CONFIGURACIÓN

PowerPoint TEMA 1. Primeros Pasos TEMA 2. La Plantilla y sus Componentes

INBOUND MARKETING. Conozca. Sitios rápidos, poderosos, flexibles y económicos.

MACROS Y FORMULARIOS

11/06/2011. Alumno: José Antonio García Andreu Tutor: Jairo Sarrias Guzman

SERVICIOS PARA EL DISEÑO E IMPLEMENTACIÓN DEL PROGRAMA INTEGRAL DE TRANSFORMACIÓN DIGITAL DE LA PROVINCIA DE LUGO: TRANSFORM@TIC

ATLAS MANUAL DE USUARIO SERVICIO DE AUDITORIA

Transcripción:

Spring Sesión 8: Desarrollo rápido de aplicaciones con Roo 1

Indice Qué es Roo? Demo Capa de acceso a datos Active Record Finders Pruebas Capa web Scaffolding REST 2

Qué es Roo Motivación Empezar un proyecto de cero es tedioso (dependencias, configuración,...) Hay mucho código repetitivo en las aplicaciones (p.ej. CRUD) Spring Roo Herramienta de generación de código Separa físicamente el código generado del creado manualmente por el desarrollador, gracias al uso de AOP Subproyecto de Spring que usa sus tecnologías y otras tecnologías estándar JavaEE o estándar de facto Maven, JPA, Tiles, JSF, GWT,... No incorpora componentes adicionales en tiempo de ejecución Sería ingenuo creer que Roo nos va a escribir la aplicación entera... 3

Arquitectura apps Roo vs estándar http://i.msdn.microsoft.com/ms998418.j2ee_interop_c6_fig6-1(en-us,msdn.10).gif http://blog.springsource.org/2011/09/14/new-application-layering-and-persistence-choices-in-spring-roo/ Roo Estándar 4

Capa de acceso a datos Tecnologías de persistencia: JPA y MongoDB En JPA podemos seleccionar el proveedor de persistencia (implementación) y la base de datos que deseamos Opciones de arquitectura Active Record (por defecto): los propios objetos del dominio se responsabilizan de la persistencia. Idea usada en muchos frameworks RAD web: Rails, Grails, Django,... Repositories: al estilo de los DAOs. Implementados con Spring Data (subproyecto de Spring) Funcionalidades adicionales Finders: métodos de búsqueda de datos generados automáticamente Validación JSR303 Podemos generar automáticamente las entidades haciendo ingeniería inversa de la base de datos Pruebas 5

Active Record Automáticamente se generan métodos CRUD //Create Tarea t = new Tarea(); t.setlimite(new Date()); t.setprioridad(1); t.settitulo("probando"); t.persist(); //Read for (Tarea t_i : Tarea.findAllTareas()) { System.out.println(t_i.getTitulo()); } //Update Tarea t2 = Tarea.findTarea(1L); t2.setprioridad(1); t2.merge(); //Delete Tarea t3 = Tarea.findTarea(2L); t3.remove(); 6

Finders Métodos para buscar por uno o más campos que cumplan una serie de condiciones A partir del nombre del finder, y siguiendo una serie de convenciones simples Roo generará automáticamente el código findtareasbytituloequals(string titulo) findtareasbytitulonotequals(string titulo) findtareasbytitulolike(string titulo) findtareasbyprioridad(int prioridad) findtareasbylimitelessthan(date limite) findtareasbylimitebetween(date minlimite, Date maxlimite) ~.domain.tarea roo> finder add --findername findtareasbyprioridad 7

Pruebas Podemos generarlas automáticamente roo> test integration --entity es.ua.jtech.domain.proyecto Para ejecutar pruebas es posible que necesitemos entidades con valores válidos pero al azar (clase XXXDataOnDemand) @Test public void testdeejemplo() { ProyectoDataOnDemand pdod = new ProyectoDataOnDemand(); Proyecto p = pdod.getnewtransientproyecto(1); p.persist(); Proyecto p2 = Proyecto.findProyecto(p.getId()); assertequals(p.tostring(),p2.tostring()); } 8

Relaciones entre entidades Podemos hacerlo desde línea de comandos o editar directamente el.java Ejemplo: relación entre Proyecto y Tareas pertenecientes a él roo> focus --class es.ua.jtech.domain.proyecto ~.domain.proyecto roo> field set --fieldname tareas --type Tarea --cardinality ONE_TO_MANY --mappedby proyecto ~.domain.proyecto roo> focus --class es.ua.jtech.domain.tarea ~.domain.tarea roo> field reference --fieldname proyecto --type Proyecto --cardinality MANY_TO_ONE 9

La capa web Comenzar con roo> web mvc setup Scaffolding: generar automáticamente CRUD para la capa web: controllers y vistas (JSP + Tiles) roo> web mvc all --package es.ua.jtech.web roo> focus es.ua.jtech.domain.proyecto ~.domain.proyecto roo> web mvc scaffold --class es.ua.jtech.web.proyectocontroller 10

La capa web (II) Acceso web a los finders Anotar el controlador con @RooFinder, o bien roo> web mvc finder all Capa REST Las URL generadas automáticamente por el scaffolding son RESTful, pero no devuelven JSON Para generar controladores CRUD que devuelven JSON roo> json all #da soporte JSON a todas las entidades roo> web json setup #solo necesario si no hemos hecho ya web mvc setup roo> web mvc json all #genera los controllers CRUD para json 11

Refactorizar código Roo Caso más típico: push-in, pasar código de un.aj a Java para poder editarlo y modificarlo según nuestras necesidades Por ejemplo modificar un finder para cambiar la ordenación de los resultados 12

Roo vs. Grails Hay ciertas semejanzas aparentes Herramientas en línea de comandos Usan Spring por debajo Active Record Finders Ambos son de SpringSource Diferencia: Roo genera código Java puro. En Grails se usa Groovy (dinámico) 13

Preguntas...? 14