Spring framework tutorial - 1 introducción

a cosas como están bienvenidos nuevamente al canal para los que no me conocen mi nombre es jaime o puede decirme me tocó el día de hoy doy inicio al curso de sprint un curso que será teórico y práctico muy didáctico en el cual estoy seguro de que aprenderás mucho tutorial número 1 code bears de la saga de spring framework y vamos a hacer un tutorial introductorio para poder conocer sobre esta tecnología vamos a empezar un poco abordando la historia porque considero que cuando nosotros estamos aprendiendo una tecnología nueva es necesario conocer el trasfondo de esta quiero decir que es necesario conocer los orígenes o los motivos o circunstancias que se dieron para poder crear esta tecnología y también a qué aspecto se estaba enfocando o sea qué problemas quería dar solución spring framework fue creado por ron johnson aquí podemos ver a la mano derecha en una imagen de él y él básicamente se estaba desenvolviendo como un consultor independiente cuando él creó sprint cuando liberó sprint en su publicación en el año 2002 de su libro expert one on one day to the design and development publicó la noción básica de lo que quería consistir su framework y no estaba conforme con las especificaciones de la época es decir java estaba un poco más enfocado a temas de escritorio y no tanto a web que las explicaciones se quedaban muy cortas es decir solamente había la parte de los servers y lo que proporcionaba los enterprise llevaban los johnson no estaba tan conforme como se trabajaba en ese entonces las grandes empresas como trabajaban bajo estas arquitecturas y él decidió utilizando patrones de diseño y buenas prácticas de programadores enfocar en un framework que actualmente ahora lo conocemos ampliamente famoso llamado bajo el nombre de sprint la primera versión oficial fue liberada de marzo del 2004 posteriormente en 2009 salió la versión 3.0 que es una versión ampliamente utilizada hasta hoy en día en enero de 2013 salió la versión 4.0 y actualmente estamos por la versión 4.2 en el año 2015 y básicamente este framework se enfoca para la plataforma de java enterprise edition es común encontrar información en internet que este framework es comparado con lo que te brinda el estándar de los enterprise bits entonces que es básicamente sprint lingua spring framework como algunos ya lo conocen pertenece a la compañía green source bueno spring framework como el nombre lo dice es un framework es decir es un marco de trabajo es un conjunto de técnicas ya aprobadas y testeadas simplemente para poder optar su funcionamiento presenta un contenedor de inversión de control usando ya la reflexión bien qué significa esto vamos a ver más adelante qué significan estos términos de inversión de control pero básicamente sprint se basa también en el api que nos proporciona ya van de llevar reflexión si no conocen útil y busquen el principio de reflexión pero básicamente es la propiedad que tienen los programas para poder manipular nuestras clases en tiempo de ejecución qué quiere decir esto tengamos el siguiente ejemplo tenemos una clase llamada persona que presenta nombre y edad el momento de compilar ya no podemos alterar normalmente esas dos clases y sus métodos que están implementados pero utilizando el lápiz dejaba reflexión lo que podríamos hacer es manipular el contenido es la estructura a clase cuando el programa ya está en ejecución es por eso que podríamos quizás agregar un atributo más o un método en particular más información podrían buscar sobre java app y reflexión también spring se le conoce por utilizar el término o el patrón de desarrollo del software como inyección de dependencias y los objetos gestionados por spring framework container por su contenedor se reconocen como objetos gestionados o vince y vamos a empezar a hablar sobre unos términos que son creo yo muy esenciales al momento que se habla de supreme framework uno de ellos es el principio de inversión de dependencias o pueden encontrar en internet con las siglas de tipo que quiere dar a entender este principio bien este principio lo único que quiere explicar es que los módulos de alto nivel no deben depender de los módulos de bajo nivel qué quiere decir esto que hay que hacer referencia más en las abstracciones sobre las implementaciones es decir un software debe estar perfectamente desacoplado no debemos depender de una implementación una clase en particular simplemente debemos abstraernos para tener como una visión más general de los componentes en el software esto es con el objetivo que nos ayudará a crear código perfectamente desacoplado el patrón yo sé que también es inversión de control inversión control es una aplicación de este principio entonces entendamos esto como una parte teórica es un principio y una implementación de ese principio es conocido como lo que vamos a ver a continuación llamado inversión de control entonces ya tenemos un concepto y vamos por el siguiente esta inversión de control es simplemente una implementación un desarrollo del principio de de la inversión de dependencia la inversión de control en siglas yo sé básicamente se resume cómo pueden encontrar en internet algunos como el principio de hollywood es decir no nos llames nosotros te llamamos o como alguna vez lo escuché en un tutorial que el flujo del programa se hace al revés por ejemplo si en algunas situaciones en sus casas o en su vida su novia lleva a control sobre ustedes o su esposa ahora van a ser los papeles al revés ahora nosotros vamos a tener el control sobre ellas eso fue algo muy curioso que encontré por internet básicamente lo que la inversión de control quiere dar a entender es que es un estilo de programación donde un agente externo puede ser una ruta en un framework va a controlar ahora el flujo de nuestra aplicación de lo que normalmente el programador antes definía cuál era el siguiente flujo la secuencia lineal de su programa está inversión de control se puede aplicar de diferentes maneras una de ellas es utilizando un servicio colector que es también un patrón de diseño de software que también su fin es desacoplar el código utilizando eventos delegaciones o lo que simplemente se le asocia mayormente a lo que es súper inflame work que vamos a atacar más este aspecto que son las de inyecciones de dependencias o sus siglas en inglés dependencia inyección inyección de dependencias como lo mencioné al igual que el service locator las inyecciones de dependencias es un patrón de diseño de software es un subtipo es decir es una manera de cómo implementar inversión de control y qué objetivo es el mismo objetivo que también depende la inversión de control es tener un código fácil de mantener o desacoplado cuál es lo que caracteriza es que provee a los objetos lo que el objeto necesita qué quiere decir esto que va a proporcionar si un objeto necesita de determinadas dependencias o de otros objetos hay tres estilos de cómo hacer una inyección de dependencias una de ellas es por constructor otra de ellas es por la propiedad específicamente set o algún servicio o interfaz acá podemos ver un ejemplo de la aplicación de inyección de dependencias por ejemplo tenemos aquí la clase customer y tenemos un objeto de tipo blogger ese objeto le hemos llamado al ojo estamos haciendo aquí una inyección de dependencias en el constructor es decir cuando la clase se está instancia no vamos a pasar el atributo decir la instancia del objeto log en el constructor esa es una manera de cómo hacer una inyección de dependencias spring cord container este es un concepto clave es cuando estamos hablando de este framework debido a que no es necesario tener un container para poder utilizar inversión de control es opcional sin embargo es recomendable porque porque te permite ordenar todo el ciclo de vida de tus objetos es decir poder gestionar de una mejor manera la creación el enlace y la configuración y la destrucción de estos objetos es por eso que es ampliamente recomendable utilizar containers porque gestiona como lo dije el ciclo de vida los objetos en sprint a estos objetos gestionados se le conocen como vince que podemos ver una gráfica en donde nuestros ojos es decir nuestras clases simples con eni sets van a poder entrar a este container simplemente para ser gestionados al ciclo de vida y durante la aplicación utilizar el container y llamar al objeto correspondiente otros contenedores de inversión de control que quiero dar a entender aquí que no es netamente esto dejaba podemos ver en java lo que es pico container nano container pivot gravity y google is son otras implementaciones que utilizan la de inversión control en punto net también tenemos estas implementaciones con united auto fact niniek extractor map con esto lo que los quiero dar a entender que es importante conocer cuáles son los términos antes de empezar a programar porque es muy común en internet encontrar confusiones inversión de control e inyección de dependencias entonces básicamente aquí hemos abordado esos tres aspectos ahora vamos a centrarnos básicamente en spring framework spring framework como ustedes saben es un marco de trabajo muy amplio presenta varios módulos estos módulos como pueden ver aquí en las diapositivas uno de ellos es el acceso a datos como pueden ver acá lo que tenemos temas de jdbc rm hot mess y transaction para la parte de web tenemos websocket aquí también está el conocido sprint mvc tenemos en la parte inferior orientado aspectos en la ope y tenemos el que es base necesario para poder entender el funcionamiento de sprint que es el core container aquí vamos a tener nuestros vince vamos a entrar en un contexto para poder invocar estos vinos utilizarlos destruirlos invocar los etcétera y finalmente tenemos un módulo para lo que son pruebas o testeo ok qué ventajas entonces tiene sprint considero que la principal ventaja de este framework es la flexibilidad es decir que te permite una integración muy natural con otras herramientas llamemos otras herramientas como framework como high bernie but it's my back disco en su versión actual en fin con diferentes tecnologías que son ampliamente utilizadas en el mercado te da un código ordenado pongo acá un asterisco debido a que esto es una observación importante porque si tú trabajas con bajo spring framework prácticamente el estilo de trabajo es el mismo lo apliques donde no apliques otras ventajas es que sprint ahora presenta también el soporte a el uso de anotaciones presenta como les dije el patrón de inyección de dependencias lo que nos va a permitir tener un desacoplamiento del código y presentan estándares de programación que son muy importantes a la hora de hacer proyectos grandes y tener la proyección para mantener un código a lo largo del tiempo algunos mitos que hay circulan por internet acerca de sprint es la excesiva configuración xml xml verbos opuesto a k es cierto que sprint en sus inicios necesitaba un archivo de configuración xml para poder definir todos nuestros objetos manejados o vince y quizás podemos tener cientos de líneas de todos los objetos pero ahora también podríamos quizás ahorrarnos unas cuantas líneas utilizando anotaciones así que yo creo que esto es ahora un mito el container no es ligero aquí quiero dar un hincapié debido a que en las versiones de dos de spring o inferiores era solamente un archivo jar donde tenías que importar a tu proyecto y si no utilizados quizás algunos aspectos de sprint es decir algunos módulos de sprint que he explicado anteriormente tenía es igual que importar todas las librerías pero esto ahora ya no es cierto debido en que las versiones 3 en adelante tenemos diferentes hard de manera independiente es decir podemos importar la librería que simplemente nos interese y utilizarla bien empecemos entonces a decir qué cosas necesito saber antes de iniciar este curso es muy importante tener en claro los siguientes conceptos el core de jabba s en el canal pueden ver un curso de java s que consta de 57 tutoriales que es lo básico para poder entender el lenguaje java también considero que es muy importante tener una sólida formación en lo que es la programación orientada a objetos aquí colocó may ven aunque no es necesario para entender spring pero colocó muy bien porque lo voy a utilizar simplemente en el archivo pon xml para el tema de la gestión de dependencias así que esto podemos ir algo algo básico y patrones de diseño no que seas un experto tanto en patrones de diseño pero por lo menos que tengas la idea clara de cuáles son las ventajas de tener el uso de patrones de diseño o quizás la implementación de algunos ahora cuál es el contenido del curso el contenido del curso es el siguiente vamos primero a tener la instalación y configuración del entorno de trabajo vamos a utilizar un ide basado en eclipse conocido como sprint el suite vamos a explicar sobre el código es acoplado a las inyecciones de dependencias luego de instalar el lead vamos a explicar básicamente lo que he venido definiendo en la parte inicial lo que es la inversión de control y lo que son las inyecciones de dependencias luego vamos a entrar de lleno a lo que es spring framework en el desarrollo de los conceptos básicos de el módulo de spring core container y finalmente una vez que hayamos visto varios conceptos básicos de lo que es el funcionamiento de sprint vamos a aplicarlo en un ejemplo el container quiero indicar que solamente se refiere a estos cuatro aspectos de los cuales vamos a ver gran parte la mayoría quiero dar a entender que esto es un curso introductorio sprint básicamente aquí no vamos a ver el tema de lo que nos brinda explique en el módulo para acceso a datos es decir no vamos a tener acceso a datos a base de datos porque vamos a ver cosas introductorias o básicas de sprint repito a medida que los cursos hayan aumentando en el canal vamos a poder tocar otros módulos de este framework y con el tiempo hacer integraciones así que espero que disfruten el contenido de este curso suscríbete al canal dale manito arriba si te gusta el vídeo compártelo con tus amigos para que estén interesados en aprender este framework que es ampliamente utilizado en el mercado y los espero en el siguiente tutorial

Comentarios