"# open-bootcamp-spring"
- Introducción a Spring
- Spring Beans
- Spring Data
- Spring Boot
- Aplicaciones Rest con Spring Boot
- Obteniendo valores de peticiones
- Devolviendo respuestas
- Documentando con Swagger
- Aplicaciones Rest con Spring Boot
- Builds en aplicación Rest con Spring Boot
- Desplegando un aplicación Rest
- Añadiendo seguridad
- Sistemas de cifrado
- Autentificación de usuarios con JWT
- Aplicando JWT como método de acceso
- Autentificación de usuarios con Oauth2
- Aplicando Oauth2 como método de acceso
- Autorización de usuarios.
- Manejo de excepciones
- Protección antes ataques con programación seguro
- Patrones de diseño existentes en spring security
- Patrón Plantilla
- Patrón Cadena de Responsabilidad.
- Patrón Estrategía
- Patrón Proxy
- Patrón Constructor
- Patrón Decorador
- Patrón Observador
- Despliegue de la aplicación
- Mantenimiento de aplicaciones en Spring
- Tareas en el manejo de excepciones.
- Crear proyecto maven con la dependencia spring-context y crear una clase Saludo con un método imprimirSaludo que imprima un texto por consola.
- Crear el archivo beans.xml con un bean para la clase Saludo.
- Obtener el bean desde el método main y ejecutar el método imprimirSaludo.
- Crear la clase NotificationService, con un método que imprima un saludo.
- Crear una clase UserService que tenga un atributo de clase NotificationService.
- Utilizar la anotación @Component en cada clase.
- Habilitar el escaneo de clases en el archivo beans.xml
- Desde el método main, probar a obtener el bean UserService y ejecutar el método imprimirSaludo que tiene asociado el atributo de tipo NotificationService. De forma similar a la realizada en clase.
- Crear un proyecto Spring Boot con las dependencias: Spring Data JPA, H2
En caso de querer que la base de datos se guarde en disco habrá que añadir las siguientes propiedades en el archivo application.properties: *spring.jpa.show-sql=true *spring.datasource.url=jdbc:h2:file:C:/data/sample *spring.datasource.username=sa *spring.datasource.password= *spring.datasource.driverClassName=org.h2.Driver *#spring.jpa.hibernate.ddl-auto=create *spring.jpa.hibernate.ddl-auto=update *spring.sql.init.mode=always *spring.jpa.defer-datasource-initialization=true
- Crear un proyecto Spring Boot con las dependencias: *H2 *Spring Data JPA *Spring Web *Spring Boot dev tools
- Crear una clase HelloController que sea un controlador REST. Dentro de la clase crear un método que retorne un saludo. Probar que retorna el saludo desde el navegador y desde Postman.
- Dentro de la misma app crear las clases necesarias para trabajar con "ordenadores": *Laptop (entidad) *LaptopRepository (repositorio) *LaptopController (controlador) *Desde LaptopController crear un método que devuelva una lista de objetos Laptop.
- Probar que funciona desde Postman.
- Los objetos Laptop se pueden insertar desde el método main de la clase principal.
- Crear un método en LaptopController que reciba un objeto Laptop enviado en formato JSON desde Postman y persistirlo en la base de datos.
- Comprobar que al obtener de nuevo los laptops aparece el nuevo ordenador creado.
- Implementar los métodos CRUD en el API REST de Laptop creada en ejercicios anteriores.
Los métodos CRUD:
- findAll()
- findOneById()
- create()
- update()
- delete()
- deleteAll()
- Implementar swagger sobre el API REST de Laptop y verificar que funciona en la URL: http://localhost:8081/swagger-ui/index.html
- Crear casos de test para el controlador de Laptop desde Spring Boot. Con click derecho dentro del código de la clase LaptopController utilizar la opción Generate > Test para crear la clase con todos los tests unitarios e implementarlos siguiente el proceso visto en clase.