SlideShare a Scribd company logo
1 of 8
Download to read offline
Introducción a
Spring Framework
https://github.com/grayshirts/demo-spring-mongo
by Mariano Ruiz @ Grayshirts
Pros y Cons comparado
con Play 1.x
Ventajas
●
Framework Java más popular del mercado.
●
+10 años de desarrollo ininterrumpido.
●
Gran ecosistema de plugins, comunidades,
empresas ...
●
Integraciones “out-of-the-box”, o hechas por
terceros con múltiples tecnologías.
●
En constante evolución, pero manteniendo
una gran compatibilidad hacia atrás.
●
Muy modular.
Desventajas
●
Requiere más código y configuración.
●
Curva de aprendizaje ligeramente superior
para aprender a usarlo, y aún mayor para
configurarlo.
●
Arranques más lentos (luego la velocidad de respuesta
a simple observación es similar).
●
Hot reload menos inteligente → más restarts en
desarrollo para probar cambios.
Diferencias
Play 1.x
➔
Clases con métodos estáticos.
➔
Convención por nombres y ubicación.
➔
Simple para implementar CRUDs gracias al
módulo “crud”.
➔
Sin soporte especial para crear APIs REST: no
soporta JSON, pobre binding de parámetros y
no soportaría el verbo PATCH.
➔
Toolkit de building propio y sencillo, pero pobre
en integración con herramientas de terceros.
Spring
➔
Clases instanciables, objetos singleton
➔
@Annotations
➔
No posee un módulo CRUD, pero un buen
reemplazo puede ser JHipster.
➔
Especial soporte para desarrollar APIs
REST/SOA, e integración con Swagger y otros
documentadores y CRUDs de APIs.
➔
Independiente del sistema de building, funciona
y tiene especial soporte con Maven y Gradle,
heredando sus comunidades de plugins.
Spring + MongoDB
●
Soporta últimas versiones de Morphia, y últimas versiones del driver de
MongoDB
– Soporta nuevos features en Mongo 3+
– @Reference caches
y lazy initializations funcionan OK
– Aggregation framework
●
Group, SUM, AVG, Left Joins !!!!
●
Integraciones probadas: Clusters, Mongeez, Fongo, ...
Y
Spring Core: Singleton +
Inyección de Dependencias
●
Ventajas (Dependency Injection motivations - Play 2.5 que explica porqué migraron al mismo
esquema que Spring):
– It allows you to easily bind different implementations for the same component. This is useful especially for
testing, where you can manually instantiate components using mock dependencies or inject an alternate
implementation.
– It allows you to avoid global static state. While static factories can achieve the first goal, you have to be careful
to make sure your state is set up properly. In particular Play’s (now deprecated) static APIs require a running
application, which makes testing less flexible. And having more than one instance available at a time makes it
possible to run tests in parallel.
●
Desventajas:
– Requiere más configuración.
– El “ciclo de vida” y los “scopes” de los distintos objetos a veces complican la “visibilidad” entre los objetos.
Referencias y puntos de partida
●
Spring Boot
●
Spring Initializr
●
Spring.io
●
JHipster
●
Spring Mongo demo
¿Preguntas?
Let's code

More Related Content

Viewers also liked

Viewers also liked (20)

Spring mvc
Spring mvcSpring mvc
Spring mvc
 
Proyecto Alojamiento Hotel artiem audax
Proyecto Alojamiento Hotel artiem audaxProyecto Alojamiento Hotel artiem audax
Proyecto Alojamiento Hotel artiem audax
 
COMUNITARIO
COMUNITARIOCOMUNITARIO
COMUNITARIO
 
Proyecto de hotel
Proyecto de hotelProyecto de hotel
Proyecto de hotel
 
Creando APIs REST con Spring Boot
Creando APIs REST con Spring BootCreando APIs REST con Spring Boot
Creando APIs REST con Spring Boot
 
Taller MVC
Taller MVCTaller MVC
Taller MVC
 
Hotel boutique stadhalle
Hotel boutique stadhalleHotel boutique stadhalle
Hotel boutique stadhalle
 
Spring framework 3
Spring framework 3Spring framework 3
Spring framework 3
 
Desarrolla tu primera api con spring boot
Desarrolla tu primera api con spring bootDesarrolla tu primera api con spring boot
Desarrolla tu primera api con spring boot
 
Presentación Spring Boot en Autentia
Presentación Spring Boot en AutentiaPresentación Spring Boot en Autentia
Presentación Spring Boot en Autentia
 
Java - Sintaxis Básica 2015
Java - Sintaxis Básica 2015Java - Sintaxis Básica 2015
Java - Sintaxis Básica 2015
 
SERVLET BASICS
SERVLET BASICSSERVLET BASICS
SERVLET BASICS
 
Empresa de transportes turismo señor de ataco s
Empresa de transportes turismo señor de ataco   sEmpresa de transportes turismo señor de ataco   s
Empresa de transportes turismo señor de ataco s
 
03 java poo_parte_2
03 java poo_parte_203 java poo_parte_2
03 java poo_parte_2
 
Java colecciones
Java coleccionesJava colecciones
Java colecciones
 
Sistemas Operativos
Sistemas OperativosSistemas Operativos
Sistemas Operativos
 
Servlet
ServletServlet
Servlet
 
Programación Orientada a Objetos en Java - Parte I 2015
Programación Orientada a Objetos en Java - Parte I 2015Programación Orientada a Objetos en Java - Parte I 2015
Programación Orientada a Objetos en Java - Parte I 2015
 
Fundamentos de Sistema- >Tema II
Fundamentos de Sistema- >Tema IIFundamentos de Sistema- >Tema II
Fundamentos de Sistema- >Tema II
 
05 java excepciones
05 java excepciones05 java excepciones
05 java excepciones
 

Introducción a Spring Framework y deferencias con Play 1.x

  • 2. Pros y Cons comparado con Play 1.x Ventajas ● Framework Java más popular del mercado. ● +10 años de desarrollo ininterrumpido. ● Gran ecosistema de plugins, comunidades, empresas ... ● Integraciones “out-of-the-box”, o hechas por terceros con múltiples tecnologías. ● En constante evolución, pero manteniendo una gran compatibilidad hacia atrás. ● Muy modular. Desventajas ● Requiere más código y configuración. ● Curva de aprendizaje ligeramente superior para aprender a usarlo, y aún mayor para configurarlo. ● Arranques más lentos (luego la velocidad de respuesta a simple observación es similar). ● Hot reload menos inteligente → más restarts en desarrollo para probar cambios.
  • 3. Diferencias Play 1.x ➔ Clases con métodos estáticos. ➔ Convención por nombres y ubicación. ➔ Simple para implementar CRUDs gracias al módulo “crud”. ➔ Sin soporte especial para crear APIs REST: no soporta JSON, pobre binding de parámetros y no soportaría el verbo PATCH. ➔ Toolkit de building propio y sencillo, pero pobre en integración con herramientas de terceros. Spring ➔ Clases instanciables, objetos singleton ➔ @Annotations ➔ No posee un módulo CRUD, pero un buen reemplazo puede ser JHipster. ➔ Especial soporte para desarrollar APIs REST/SOA, e integración con Swagger y otros documentadores y CRUDs de APIs. ➔ Independiente del sistema de building, funciona y tiene especial soporte con Maven y Gradle, heredando sus comunidades de plugins.
  • 4. Spring + MongoDB ● Soporta últimas versiones de Morphia, y últimas versiones del driver de MongoDB – Soporta nuevos features en Mongo 3+ – @Reference caches y lazy initializations funcionan OK – Aggregation framework ● Group, SUM, AVG, Left Joins !!!! ● Integraciones probadas: Clusters, Mongeez, Fongo, ... Y
  • 5. Spring Core: Singleton + Inyección de Dependencias ● Ventajas (Dependency Injection motivations - Play 2.5 que explica porqué migraron al mismo esquema que Spring): – It allows you to easily bind different implementations for the same component. This is useful especially for testing, where you can manually instantiate components using mock dependencies or inject an alternate implementation. – It allows you to avoid global static state. While static factories can achieve the first goal, you have to be careful to make sure your state is set up properly. In particular Play’s (now deprecated) static APIs require a running application, which makes testing less flexible. And having more than one instance available at a time makes it possible to run tests in parallel. ● Desventajas: – Requiere más configuración. – El “ciclo de vida” y los “scopes” de los distintos objetos a veces complican la “visibilidad” entre los objetos.
  • 6. Referencias y puntos de partida ● Spring Boot ● Spring Initializr ● Spring.io ● JHipster ● Spring Mongo demo