0% encontró este documento útil (0 votos)
8 vistas26 páginas

Curso Completo de Java desde Cero

El curso de Java abarca desde la programación básica hasta avanzada, incluyendo el uso de IntelliJ IDEA, programación funcional con Java 8, y desarrollo de aplicaciones web con Spring Framework. Los estudiantes aprenderán sobre programación orientada a objetos, manejo de excepciones, y estructuras de datos, así como a realizar pruebas unitarias y trabajar con hilos. Al finalizar, los participantes estarán preparados para el examen de certificación de Java Oracle y contarán con soporte continuo del instructor.
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
8 vistas26 páginas

Curso Completo de Java desde Cero

El curso de Java abarca desde la programación básica hasta avanzada, incluyendo el uso de IntelliJ IDEA, programación funcional con Java 8, y desarrollo de aplicaciones web con Spring Framework. Los estudiantes aprenderán sobre programación orientada a objetos, manejo de excepciones, y estructuras de datos, así como a realizar pruebas unitarias y trabajar con hilos. Al finalizar, los participantes estarán preparados para el examen de certificación de Java Oracle y contarán con soporte continuo del instructor.
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

TEMARIO - CURSO DE JAVA

LO QUE APRENDERÁS

● Aprende a programar desde cero con Java hasta avanzado utilizando el


mejor IDE IntelliJ IDEA (versión community o free)
● Domina la programación funcional de Java 8 con Expreciones Lambda y
el API Stream
● Comprende Java y el paradigma de la programación orientada a objetos
para futuros trabajos
● Aprende Java desde cero usando las mejores prácticas POO, sus
principios y Patrones de Diseños
● Aprende a escribir pruebas unitarias con JUnit 5 y Mockito
● Domina los Threads (hilos) y aplicaciones concurrentes en Java
● Aprende a manejar errores haciendo uso de Excepciones
● Desarrollar aplicaciones web reales utilizando Spring Framework 5 con
Spring Boot y Data JPA.
● Desarrolla una aplicación Full Stack completa con Spring 5 + JPA + API
Restful.
● Al finalizar el curso, serás capaz de presentarte y aprobar el examen de
certificación de Java Oracle
● Se agregan nuevos videos cada día, siempre tendrás acceso a
contenido ACTUALIZADO!
● Soporte CONTÍNUO con profesor online, PROFESOR RESPONSABLE,
publica tus dudas y responderé en menos de 8 horas.
● Aumenta tus oportunidades laborales.
INTRODUCCIÓN

● Instalación JDK
● Instalación IntelliJ IDEA
● Creando nuestra primera aplicación
● Ejemplo Hola Mundo en Java

VARIABLES

● Introducción a las variables


● Ejemplos de variables
● Reglas para definir una variable
● Introducción a los primitivos
● Primitivos numéricos enteros
● Primitivos numéricos de punto flotante
● Primitivos numéricos de punto flotante y sus constantes
● Primitivo char o caracter
● Char y caracteres especiales
● Primitivo boolean o lógico binario
● Sistemas numéricos: decimal, binario, octal y hexadecimal
● Sistemas numéricos y entradas de datos desde ventana de dialogo
● Sistemas numéricos y entradas de datos desde el terminal
● Conversión de cadenas a primitivos
● Conversiones de tipo primitivos a cadenas
● Conversiones entre tipos primitivos

TIPO STRING: CADENAS

● Introducción a los String


● Creando objeto String en la literal vs operador new
● Concatenando String
● Inmutabilidad
● Test rendimiento concatenar con operador (+) vs método concat() vs
StringBuilder
● Validar un String
● Métodos importantes del objeto String parte 1
● Métodos importantes del objeto String parte 2
● Obtener la extensión de un archivo
● Algunos métodos útiles para convertir un String en un Arreglo

OPERADORES

● Introducción a los operadores


● Operadores Aritméticos
● Operadores de Asignación
● Operadores Unarios
● Operadores de Incremento y Decremento
● Operadores Relacionales
● Operadores Lógicos
● Precedencia en los operadores lógicos
● Ejemplo login y uso de operadores lógicos
● Ejemplo login usando arreglos
● Operador Ternario
● Ejemplo login con operador ternario
● Operador Ternario número mayor
● Operador Instanceof (Tipo de)
● Operador Instanceof con tipos abstractos
● Precedencia de los operadores
● Modo depuración paso a paso
FLUJOS DE CONTROL

● Introducción a flujos de control


● Flujo de control if else
● Flujo de control if else ejemplo año bisiesto
● Flujo de control swich case
● Sentencia swich case ejemplo nombre del mes
● Swich case ejemplo número de dias del mes
● Introducción a flujos de control de bucles
● Flujo de control for
● Iterando arreglos con sentencia for y palabras reservadas break y
continue
● Flujo de control while y do while
● Sentencia foreach
● Etiquetas en las sentencias for y while
● Ejemplo buscar con sentencias for anidadas y etiquetas
● Modo depuración sentencias if else y switch case
● Modo depuración sentencias for y foreach

CLASES WRAPPER

● Introducción a las clases Wrapper


● Clase Wrapper Integer
● Autoboxing y unboxing
● Clases Wrapper numéricas y operadores relacionales
● Clase Wrapper Boolean
● El método getClass() del objeto para reflexión y metadata
VALOR V/S REFERENCIA

● Pasar argumento por valor


● Pasar argumento por referencia
● Pasar argumento por referencia objeto persona

LAS CLASES DATE Y CALENDAR

● La clase Date y formatos de fechas


● Tiempo en milisegundos con método getTime()
● La clase Calendar
● Convertir una fecha String a objeto del tipo Date
● Comparar fechas

LA CLASE SYSTEM

● Obtener propiedades del sistema


● Agregar y customizar propiedades y configuraciones de la aplicación
● Obtener las variables de ambiente del sistema operativo
● Otras características y funciones útiles de la clase System
● La clase Runtime para ejecutar aplicaciones del S.O

LA CLASE MATH

● La clase Math parte 1


● La clase Math parte 2 (trigonometría)
● La clase Math y el método random() para generar números aleatorios
● La clase Random de java util
LÍNEA DE COMANDO

● Línea de comando compilar y ejecutar con argumentos


● Línea de comando ejemplo calculadora
● Pasar argumentos de línea de comando en Intellij
● Descargar Código Fuente

ARREGLOS

● Introducción a los arreglos


● Ejemplo de un arreglo de enteros
● Ejemplo de un arreglo de string y ordenar con sort
● Iterando arreglos
● Iterando en orden inverso un arreglo
● Modificando el arreglo en reverso
● Ordenamiento algoritmo burbuja
● Ordenamiento algoritmo burbuja método optimizado
● Reutilizando algoritmo burbuja
● Imprimiendo el i-ésimo número por el principio y el i-ésimo por el final
● Combinar dos arreglos en un tercero
● Combinar dos arreglos en un tercero con múltiples elementos
● Obtener el número mayor de un arreglo de enteros
● Detectar orden del arreglo
● Copiar pares e impares de un arreglo de enteros y en sus respectivos
arreglos
● Sistema de notas de alumnos por asignaturas
● Buscar elementos en un arreglo
● Mover los elementos en una posición desde el inicio del arreglo hasta el
final
● Agregar un elemento en una posición indicada y mover los siguientes
elementos
● Agregar un elemento en una posición adecuada de manera que se
mantenga ordenado
● Eliminar un elemento del arreglo
● Insertando un nuevo elemento e incrementando el tamaño del arreglo
● Descargar Código Fuente

MATRICES: ARREGLOS BIDIMENSIONALES

● Introducción a las matrices


● Ejemplo de una matriz de enteros
● Ejemplo de un arreglo de string e iterando con for
● Tamaños de columnas variable en una matriz
● Buscando un elemento en una matriz usando etiquetas y break
● Ejecutando en modo depuración
● Matriz simétrica
● Creando la matriz transpuesta de una matriz
● Operaciones aritméticas en matrices
● Sumar filas y columnas de una matriz
● Límites inferior y superior de la matriz y la diagonal principal
● Descargar Código Fuente

PROGRAMACIÓN ORIENTADA A OBJETOS: CLASES Y OBJETOS

● Introducción a clases y objetos


● Creando nuestra primera clase
● Creando objetos con el operador new
● Agregando métodos
● Métodos con argumentos
● Métodos con argumentos, sobrecarga y encapsulamiento
● Principio de ocultación de los atributos
● Ocultación métodos get y set
● Implementando constructor
● Sobrecarga de constructores
● El método equals
● El método equals segunda parte
● El método toString
● Atributos y métodos estáticos de la clase
● Atributos y métodos estáticos 2º parte
● Atributos constantes final
● Atributos constantes final 2º parte (colores)
● Enumerador Color (enum)
● Implementando enumerador con más atributos
● Utilizando enum con sentencias switch case
● Iterando enum con foreach
● Diagrama de clases UML y relaciones de clases/objetos
● Creando las clases relacionadas
● Modificando clase con atributos de relaciones de objetos
● Soluciones a posibles errores NullPointerException
● Relacionando los demás objetos
● Añadiendo el método add para agregar elementos de un arreglo
● El método compareTo para ordenar objetos

PROGRAMACIÓN ORIENTADA A OBJETOS: PAQUETES

● Introducción a los paquetes


● Creando nuestros primeros package y sus clases
● Control de acceso mediante modificadores
● Alcance de los modificadores de accesos
● Import estático
● Descargar Código Fuente

PROGRAMACIÓN ORIENTADA A OBJETOS EJEMPLO: FACTURAS

● Introducción y diagrama de clases UML


● Creando las clases del modelo
● Calculando el importe de la línea y gran total de la factura
● Generando detalle de la factura
● Creando la clase principal de aplicación de facturas
● Optimizando la aplicación
● Modo depuración paso a paso
● Descargar Código Fuente

PROGRAMACIÓN ORIENTADA A OBJETOS - SOBRECARGA DE MÉTODOS

● Introducción a la sobrecarga
● Implementando clase con sobrecarga de métodos
● Corriendo ejemplo sobrecarga en modo debug
● Varargs número variable de argumentos
● Sobrecarga y métodos estáticos
● Descargar Código Fuente

PROGRAMACIÓN ORIENTADA A OBJETOS - HERENCIA

● Introducción a la herencia
● Creando la jerarquía de clases
● Sobre el modificador de acceso protected
● Herencia y el API de reflexión de java
● Llamando a los constructores en cadena
● La referencia super en constructor
● Creando instancias vía constructores con argumentos y control de tipos
● Sobreescritura de métodos en la herencia
● Sobre escritura método toString
● Debug mode
● Modificador final para evitar la herencia y la sobreescritura de métodos
● Resumen con diagrama UML de Clases

PROGRAMACIÓN ORIENTADA A OBJETOS - HERENCIA Y CLASES


ABSTRACTAS

● Introducción a las clases abstractas


● Diseño de clases UML
● Creando clase padre abstracta ElementoForm
● Creando clases hijas concretas InputForm y TextareaForm
● Creando la clase concreta SelectForm
● Creando la clase ejemplo con el método main EjemploForm
● Dibujando elementos del formulario
● Clases Anónimas
● Creando la clase abstracta Validador con tres clases hijas concretas
● Creando la clase concreta LargoValidador para validar el min y máx de
caracteres
● Creando la clase concreta EmailValidador
● Implementando la validación en la clase abstracta ElementoForm
● Validando los elementos del formulario
● Añadiendo el nombre del campo en los mensajes de errores
● Implementando interface para formatear mensajes de errores
PROGRAMACIÓN ORIENTADA A OBJETOS - INTERFACES

● Introducción a las interfaces


● Creando nuevo proyecto y clase abstracta con su jerarquía
● Añadiendo nueva clase concreta a la jerarquía
● Creando la clase ejemplo con el método main
● Añadiendo la clase Libro y la interface
● Añadiendo algunas mejoras y optimizaciones en el código
● Métodos default y static en interfaces

PROGRAMACIÓN ORIENTADA A OBJETOS - EJEMPLO INTERFACE


REPOSITORIO

● Creando interface Crud Repositorio y otras


● Creando implementación concreta y herencia multiple de interfaces
● Implementando métodos de interfaces para ordenar y paginar
● Creando la clase ejemplo con el método main y probando el Crud
Repositorio
● Optimizando el código
● Herencia múltiple entre interfaces

TIPOS GENERICOS (JAVA GENERICS)

● Métodos genéricos - Generic Methods


● Métodos genéricos con límites - Bounded Generics
● Métodos genéricos con tipo List y comodines - Wildcards Generics
● Métodos genéricos máximo de tres objetos usando Comparable
● Clases genéricas
● Clases genéricas - añadiendo ejemplo con main
● Clases genéricas - modificando la clase genérica con el parámetro T
● Ejemplo Repositorio con tipos genéricos (Generic type)
● Ejemplo Repositorio con límites - Bounded Generics
● Implementando un Repositorio de Producto

MANEJO DE EXCEPCIONES

● Introducción a las Excepciones en Java


● Ejemplos de manejos de excepciones no comprobadas (unchecked)
● Implementando nuestras propias excepciones checked
● Implementando nuestras propias excepciones checked - parte 2
● Manejo de Excepciones en el ejemplo Crud Repositorio
● Manejo de Excepciones en el ejemplo Crud Repositorio - parte 2

ESTRUCTURA DE DATOS - API DE COLECCIÓN DE JAVA

● Introducción
● Ejemplo HashSet
● Ejemplo HashSet detectando duplicados
● Ejemplo TreeSet
● Ejemplo TreeSet Comparable y Comparator
● Singularidad en TreeSet y HashSet
● Formas de loop o iteraciones en los Collection Set y List
● Ejemplo ArrayList Comparable y Comparator
● Ejemplo ArrayList métodos más importantes
● Ejemplo LinkedList (Lista Doblemente Enlazada) - Pilas y colas
● List Iterator
● Ejemplo HashMap
● Ejemplo HashMap métodos más importantes
● Ejemplo HashMap con valor del tipo Object y relaciones de objetos
● Ejemplo HashMap con valor del tipo Object y relaciones de objetos -
parte 2
● Ejemplo TreeMap

THREADS - HILOS Y CONCURRENCIA

● Introducción a los Threads


● Creando hilos heredando de la clase Thread
● Creando hilos implementando la interface Runnable
● Implementando hilos con expresiones lambda y Runnable
● El método join vs sleep
● Usando modificador synchronized para la sincronización de hilos
● Métodos wait() y notify() sincronización Productor Consumidor
● Métodos wait() y notify() sincronización Productor Consumidor - parte 2
● Ejemplo de sincronización Productor Consumidor con Java 8 Lambda
● Usando Timer y TimerTask para agendar tareas programadas
● Agendando tareas programadas que se repiten cada cierto periodo de
tiempo
● Executor Framework - Single Thread Executor
● Executor Framework - Future
● Executor Framework - Fixed Thread Pool
● Executor Framework - Personalizando parámetros del pool con
ThreadPoolExecutor
● Executor Framework - Tareas programadas con
ScheduledExecutorService
● Executor Framework - Tareas programadas que se repiten cada cierto
periodo
JAVA 8 PROGRAMACIÓN FUNCIONAL - EXPRESIONES LAMBDA

● Expresiones Lambda Consumidores o Consumer


● Referencias de métodos en expresiones lambda de tipo Consumer
● Expresiones Lambda Function
● Expresiones Lambda Predicate
● Creando nuestra propia expresión lambda con una interfaz funcional

JAVA 8 PROGRAMACIÓN FUNCIONAL - API STREAM

● Introducción a los Streams


● Creando un Stream
● El operador map
● El operador map parte 2
● El operador filter
● El operador anyMatch
● Un resumen al API Optional de java 8
● Operadores varios filter(), distinct(), reduce(),, sum() y
summaryStatistics()
● Operadores mapToInt(), sum() y summaryStatistics()
● Operador flatMap()
● Convirtiendo un List a un Stream
● Generando Stream infinito o bien emitiendo elementos en un intervalo
de tiempo
● Ejemplo flatMap facturas de usuarios
● Operador parallel()
JAVA 8 PROGRAMACIÓN FUNCIONAL - OPTIONAL

● Introducción a la clase Optional


● Ejemplo Repositorio usando Optional
● Optional métodos orElse() vs orElseGet()
● Optional método orElseThrow()
● Optional operadores map(), filter() y flatMap()

JAVA 8 DATE TIME

● Introducción
● Trabajando con LocalDate para fechas
● Trabajando con LocalTime para hora tiempo
● Formateando hora tiempo con DateTimeFormatter
● Trabajando con LocalDateTime para fecha y hora
● Trabajando con zonas horaria usando ZonedDateTime
● Trabajando con zonas horaria usando ZonedDateTime parte 2
● Trabajando con periodos y duración

JAVA ANNOTATIONS - USO DE ANOTACIONES

● Introducción y creando nuestra primera anotación


● Procesando las anotaciones usando el api de reflexión de java
● Creando la clase procesador JsonSerializador y agregando capitalizador
● Añadiendo nueva anotación para método @Target METHOD
RECURSIVIDAD

● Creando la clase Componente recursiva


● Añadiendo método recursivo que recorre el arbol

PATRONES DE DISEÑO

● Patrón Singleton
● Patrón Abstract Factory
● Patrón Abstract Factory parte 2
● Patrón Abstract Factory parte 3
● Patrón Decorator
● Patrón Decorator parte 2
● Patrón Composite
● Patrón Composite parte 2
● Patrón Observer

MANEJO DE ARCHIVOS

● Creando archivos
● Usando BufferedWriter y PrintWriter
● Leer archivos

BASE DE DATOS CON JDBC

● Introducción SQL
● Instalación MySQL
● Creando el esquema de base de datos
● Introducción al API JDBC
● Creando nuestro proyecto Java con JDBC
● Cerrando conexiones, recursos y manejo de errores
● Añadiendo la clase singleton de conexión a la base de datos
● La interface Repositorio
● Implementando la clase Repositorio
● Implementando la clase Repositorio parte 2
● Implementando la clase Repositorio parte 3 el CRUD
● La clase Repositorio parte 4 probando el CRUD
● Relaciones de tablas creando esquema DDL
● Relaciones de objetos del modelo o DTO
● Una conexión por sentencia u operación

BASE DE DATOS CON JDBC - POOL DE CONEXIONES

● Introducción
● Implementando pool de conexiones

BASE DE DATOS JDBC - TRANSACCIONES

● Introducción
● Ejemplo Transacciones Singleton
● Ejemplo Transacciones Singleton parte 2
● Ejemplo Transacciones con pool de conexiones
● Ejemplo Transacciones con pool de conexiones parte 2
● Ejemplo Transacciones con pool de conexiones parte 3 (obtener último
insert id)
● Ejemplo Transacciones con pool de conexiones parte 4
● Agregando la interface Service y su clase de implementación
transaccional
● Implementando los métodos de la clase Service
● Utilizando la clase Service en la clase de ejemplo con el main

UNIT TESTING - JUNIT 5

● Introducción pruebas unitarias


● Introducción JUnit 5
● Creando y configurando el proyecto con JUnit 5
● Escribiendo y ejecutando primeras pruebas unitarias con Assertions
● Escribiendo test para el saldo
● Test driven development TDD con JUnit
● TDD para débito y crédito
● Probando y afirmando excepciones con assertThrows en JUnit 5
● Añadiendo la clase Banco y la realcion con las cuentas
● Probando y afirmando las realciones entre Banco y Cuenta
● Usando el método assertAll
● Agregando mensajes de falla en los métodos assertions
● Usando anotaciones @DisplayName y @Disabled
● Ciclo de vida anotaciones @AfterEach y @BeforeEach
● Ciclo de vida anotaciones @AfterAll y @BeforeAll
● Test condicionales @EnabledOnOs, @EnabledOnJre,
@EnabledIfSystemProperty
● Ejecuciones de test condicionales con @EnabledIfEnvironmentVariable
● Ejecución de test condicional con Assumptions programáticamente
● Clases de test anidadas usando @Nested
● Repitiendo pruebas con @RepeatedTest
● Escribiendo pruebas parametrizadas con @ParameterizedTest
● Pruebas parametrizadas con @ParameterizedTest parte 2
● Pruebas parametrizadas con @ParameterizedTest parte 3
● Tagging tests con anotación @Tag
● Inyección de Dependencia & componentes testInfo y TestReporter
● Timeout en JUnit 5
● Maven surefire plugin

UNIT TESTING - MOCKITO

● Introducción
● Creando y configurando el proyecto con JUnit 5 y Mockito
● Implementando la clase Service
● Realizando primeras pruebas con mockito
● Agregando nuevas dependencias mock
● Probando nuevas dependencias mock
● Probando con verify
● Inyección de dependencia y anotaciones @Mock, @InjectMock y
@ExtendWith
● Realizando más pruebas del repositorio con el metodo guardar
● Test del id incremental en el método guardar usando Invocation
Argument

SPRING FRAMEWORK 5 - CREANDO WEBAPPS CON SPRING

● Importante: antes de comenzar con esta sección de Spring


● Introducción
● Instalación del Spring Tools Suite IDE
● Creando un proyecto Web con Spring Boot
● Estructura de una aplicación Spring Boot
● Creando el controlador y la vista
● Pasar datos a la vista
● Anotación @RequestMapping sobre el controlador
● Introducción MVC
● El objeto Model
● Directiva if de Thymeleaf
● Directiva each (foreach) de Thymeleaf
● Anotación @ModelAttribute
● Anotacion @RequestParam
● Obtener varios parámetros de la URL con @RequestParam
● Anotación @PathVariable
● Obtener varios parámetros de la ruta con @PathVariable
● Agregando recursos estáticos y estilos CSS personalizados
● Inyectar valores usando la anotación @Value
● Agregando otros archivos properties personalizados para los textos
● Retornando redirect y forward como respuesta en métodos del
controlador
● Despliegue y ejecución desde terminal (deploy)

SPRING FRAMEWORK 5 - INYECCIÓN DE DEPENDENCIA

● Creando nuevo proyecto y controlador


● Añadiendo la clase de servicio
● Implementando inyección de dependencia con la anotación @Autowired
● Inyectando mediante la interface
● Introducción al contenedor y la inyección de dependencias
● Inyección de dependencias vía constructor y métodos setters
● Anotación @Primary
● Anotación @Qualifier
● Registrando componentes usando clase de configuración y la anotación
@Bean
● Ejemplo Factura y relaciones entre sus componentes
● Registrando componente ItemsFactura
● Creando el controlador FacturaController y su vista
● Registrando otras líneas para la factura
● Ciclo de vida del componente
● Contextos (Scope) de los componentes

SPRING FRAMEWORK 5 - FORMULARIOS THYMELEAF Y DATA BINDING

● Creando nuevo proyecto form


● Actualización: para Spring Boot 2.3.0 o superior agregar dependencia
validation
● Añadiendo la vista del formulario
● Método handler para recibir y procesar los datos enviados
● Creando la clase model del formulario
● Mapeando los campos del formulario al objeto model
● Validación del formulario usando anotaciones
● Añadiendo los mensajes de errores en la vista del formulario
● El atributo object de thymeleaf en el elemento form
● Mostrar valores de atributos del objeto model en el formulario
● La anotación @SessionAttributes para manter los datos durante el ciclo
del form
● La anotación @Size para rangos y @Email para validar correo
electrónico
● Mensajes de errores personalizados usando properties
● Archivos properties y acentos con UTF-8
● Validación personalizada usando anotación @Pattern para expresiones
regulares
● Validación personalizada usando una clase Validation
● Registrando una clase validador con la anotación @InitBinder
● Validación personalizada usando anotaciones
● Validación personalizada usando anotaciones ejemplo requerido
● Validación de números enteros con @Max @Min y NotNull
● Validación de fechas con @NotNull y dando formato con
@DateTimeFormat
● Validación de fechas con input type date de HTML5 y @Past y @Future
● Formateando fechas con @InitBinder y registrando un
CustomDateEditor
● Formateando fechas con @InitBinder y registrando un
CustomDateEditor Parte 2
● Implementando propio filtro custom property editor para convertir a
mayúscula
● Lista select desplegable
● Formateando fechas en vistas thymeleaf
● Llenando lista select con Map
● Llenando lista select con objetos de la clase País
● Añadiendo componente service de País
● Añadiendo componente pais property editor
● Implementando checkboxes
● Llenando checkboxes con Map
● Llenando checkboxes con objetos del tipo Role
● Añadiendo componente role property editor
● Checkbox booleano true o false
● Radio button
● Input type hidden
● Poblando país y roles
● Redirect después del POST procesar
● Añadiendo estilos CSS al formulario con Bootstrap
● Añadiendo estilos CSS Bootstrap a la plantilla resultado
● Cargando archivo css Bootstrap localmente
SPRING FRAMEWORK 5 - INTERCEPTORES HTTP

● Introducción a los interceptores Http


● Implementando interceptor TiempoTranscurrido
● Registrando interceptor en la configuración de spring
● Implementando fragment interceptor para reutilizar código en thymeleaf
● Saliendo del interceptor en peticiones POST http - return en post handle
● Retornando false en un interceptor

SPRING FRAMEWORK 5 - INTERCEPTORES HTTP HORARIO DE ACCESO A


CLIENTES

● Creando proyecto
● Creando interceptor horario
● Creando método handler cerrado
● Registrando interceptor
● Revisando error NullPointerException

SPRING FRAMEWORK 5 - MANEJO DE ERRORES

● Creando nueva aplicación y controlador


● Personalizando error 404 y 500
● Anotación @ControllerAdvice para manejo de excepciones
● Personalizando página de error para la excepción
NumberFormatException
● Manejando excepción personalizada creando clases Model y Service
● Añadiendo método handler ver
● Creando clase Exception personalizada
● Lanzamiento de exepción usando Api Optional de Java 8
SPRING FRAMEWORK 5 - CRUD USANDO SPRING DATA JPA

● Creando el proyecto
● Creando la clase Entidad JPA anotada con @Entity
● Creando la clase de Acceso a Datos o DAO con Entity Manager -
@Repository
● Creando controlador con la acción handler listar
● Creando la vista [Link]
● Decorando la vista listar con estilos CSS Bootstrap
● La consola H2 Database
● Agregando crear en Repositorio Dao y Controlador
● Creando la vista crear y formulario
● Mejorando formulario con estilos Bootstrap CSS
● Agregando campo fecha en formulario
● Agregando reglas de validación usando anotaciones
● Agregando mensajes de errores personalizados
● Agregando mensajes de errores sobre el formulario
● Agregando editar
● Agregando eliminar
● Agregando la clase Service
● Implementando el Dao con la interface CrudRepository
● Cambiando Datasource a MySQL en el proyecto

SPRING FRAMEWORK 5 - LAYOUT THYMELEAF

● Layout usando fragments en Thymeleaf


● Bonus track: Layout usando fragments en Thymeleaf - Parte 2
● Flash Messenger
REQUISITOS

● NO es necesario saber nada de nada de Java ni de programación,


comienza desde cero hasta los detalles
● NO es necesario conocimientos de Bases de Datos ni SQL

DESCRIPCIÓN

Aquí aprendas las mejores prácticas en desarrollo utilizando


programación orientado a objetos y Patrones de Diseños (GoF), Recursividad,
Programación Funcional, Expresiones Lambda y API Stream de Java 8, Hilos
(Threads), Concurrencia, Unit Testing con JUnit 5, Mockito, Spring Boot y
desarrollo Full Stack con Spring.

Te enseño paso a paso y desde cero a construir aplicaciones Java en su


última versión JDK 16+ aprovechando las características de la Programación
Orientada a Objetos (POO) mediante clases, clases abstractas, interfaces y
enumeraciones, principios orientado a objetos (herencia, abstracción,
encapsulamiento, ocultación, interfaces y polimorfismo etc.), clases y
métodos genéricos con el API Java Generic, API de Colecciones de objetos,
manejo de excepciones, concurrencia e hilos (Threads), Java 8 expresiones
lambda, Java 8 API Stream, Java 8 Optional, Java 8 Date/Time API,
Annotations, Recursividad, Patrones de diseños (GoF), Bases de Datos con
JDBC y operaciones CRUD (crear, leer, actualizar y eliminar), Patrón DAO y
DTO, JUnit 5, Mockito, Spring Framework, Spring Boot 2, Hibernate/JPA,
Desarrollo full stack con Spring y más.

¿PARA QUIÉN ES ESTE CURSO?

● Personas que estén estudiando informática y/o ingeniería


● Programadores y Desarrolladores que necesitan aprender Java
● Personas que dominan Java y quieran afianzar, actualizar y profundizar
sus conocimientos
● Personas que quieran aprender y crear aplicaciones en Java

● Personas apasionadas en el desarrollo de tecnologías


● Personas interesadas en el desarrollo backend que necesitan aprender
Java

El curso es completamente funcional con versiones de Java 8 y 11, 12, 13, 14,
15, 16 y superiores.

INSTRUCTOR:
ING. FERNANDO LÓPEZ VEGA
WA: (+57) 324-363-1451

También podría gustarte