├── .gitignore ├── 001. Introducción a Spring Framework └── spring-intro │ ├── .gitignore │ ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties │ ├── README.md │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ ├── example │ │ │ ├── App.java │ │ │ ├── config │ │ │ │ └── BeansConfig.java │ │ │ ├── controller │ │ │ │ └── EmployeeController.java │ │ │ ├── primary │ │ │ │ ├── CustomerAServiceImpl.java │ │ │ │ ├── CustomerBServiceImpl.java │ │ │ │ └── CustomerService.java │ │ │ └── service │ │ │ │ ├── EmployeeService.java │ │ │ │ └── EmployeeServiceImpl.java │ │ │ └── example2 │ │ │ └── HelloService.java │ └── resources │ │ ├── application.properties │ │ └── beans.xml │ └── test │ └── java │ └── com │ └── example │ └── AppTests.java ├── 002. Tu primera aplicación web con Spring Boot └── spring-web-mvc │ ├── .gitignore │ ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties │ ├── README.md │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── example │ │ │ ├── App.java │ │ │ ├── controller │ │ │ └── ProductController.java │ │ │ ├── entity │ │ │ └── Product.java │ │ │ └── repository │ │ │ └── ProductRepository.java │ └── resources │ │ ├── application.properties │ │ └── templates │ │ ├── product-form.html │ │ ├── product-list.html │ │ └── product-view.html │ └── test │ └── java │ └── com │ └── example │ └── AppTests.java ├── 003. Introducción a Spring Data JPA └── spring-data-jpa │ ├── .gitignore │ ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties │ ├── README.md │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── example │ │ │ ├── App.java │ │ │ ├── model │ │ │ ├── Customer.java │ │ │ └── Employee.java │ │ │ └── repository │ │ │ ├── CustomerRepository.java │ │ │ └── EmployeeRepository.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── com │ └── example │ └── AppTests.java ├── 004. Tu primera API Rest con Spring Boot └── spring-rest │ ├── .gitignore │ ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties │ ├── README.md │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── example │ │ │ ├── App.java │ │ │ ├── controller │ │ │ └── ManufacturerController.java │ │ │ ├── model │ │ │ └── Manufacturer.java │ │ │ ├── repository │ │ │ └── ManufacturerRepository.java │ │ │ └── service │ │ │ ├── ManufacturerService.java │ │ │ └── ManufacturerServiceImpl.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── com │ └── example │ └── AppTests.java ├── 005. Introducción a Spring Security └── spring-security │ ├── .gitignore │ ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties │ ├── README.md │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── example │ │ │ ├── App.java │ │ │ ├── HelloController.java │ │ │ └── SecurityConfig.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── com │ └── example │ └── AppTests.java ├── 006. Implementa la gestión de errores en tu aplicación web con Spring Boot └── spring-web-gestion-errores │ ├── .gitignore │ ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties │ ├── README.md │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── example │ │ │ ├── App.java │ │ │ ├── Product.java │ │ │ ├── ProductController.java │ │ │ ├── ProductErrorAdvice.java │ │ │ ├── ProductService.java │ │ │ ├── ProductServiceImpl.java │ │ │ └── ProductTitleException.java │ └── resources │ │ ├── application.properties │ │ └── templates │ │ ├── product-error.html │ │ ├── product-form.html │ │ └── product-info.html │ └── test │ └── java │ └── com │ └── example │ └── AppTests.java ├── 007. Validación de datos en tu aplicación web con Spring Boot └── spring-rest-validation │ ├── .gitignore │ ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties │ ├── README.md │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── example │ │ │ ├── App.java │ │ │ ├── controller │ │ │ └── ProductController.java │ │ │ ├── error │ │ │ ├── ErrorResponse.java │ │ │ ├── GlobalExceptionHandler.java │ │ │ ├── ProductExceptionHandler.java │ │ │ └── ProductTitleException.java │ │ │ ├── model │ │ │ ├── Manufacturer.java │ │ │ └── Product.java │ │ │ └── service │ │ │ ├── ProductService.java │ │ │ └── ProductServiceImpl.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── com │ └── example │ └── AppTests.java ├── 008. Paginación de resultados en tu aplicación web con Spring Boot └── spring-pagination-thymeleaf │ ├── .gitignore │ ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties │ ├── README.md │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── example │ │ │ ├── App.java │ │ │ ├── controller │ │ │ └── EmployeeController.java │ │ │ ├── model │ │ │ └── Employee.java │ │ │ ├── repository │ │ │ └── EmployeeRepository.java │ │ │ └── service │ │ │ ├── EmployeeService.java │ │ │ └── EmployeeServiceImpl.java │ └── resources │ │ ├── application.properties │ │ └── templates │ │ └── employee-list.html │ └── test │ └── java │ └── com │ └── example │ └── AppTests.java ├── 009. Paginación de resultados en tu API REST con Spring Boot └── spring-pagination-rest │ ├── .gitignore │ ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties │ ├── README.md │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── example │ │ │ ├── App.java │ │ │ ├── Employee.java │ │ │ ├── EmployeeController.java │ │ │ └── EmployeeRepository.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── com │ └── example │ └── AppTests.java ├── 010. Documenta tu API REST con Open API 3.0 └── spring-rest-openapi │ ├── .gitignore │ ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties │ ├── README.md │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── example │ │ │ ├── App.java │ │ │ ├── config │ │ │ └── OpenApiConfig.java │ │ │ ├── controller │ │ │ ├── EmployeeController.java │ │ │ └── HelloController.java │ │ │ └── model │ │ │ └── Employee.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── com │ └── example │ └── AppTests.java ├── 011. Testing unitario de tu aplicación con Spring Boot, Junit y Mockito └── spring-testing-unitario │ ├── .gitignore │ ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties │ ├── README.md │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── example │ │ │ ├── App.java │ │ │ ├── controller │ │ │ └── BookController.java │ │ │ ├── model │ │ │ └── Book.java │ │ │ ├── repository │ │ │ └── BookRepository.java │ │ │ └── service │ │ │ ├── BookService.java │ │ │ └── BookServiceImpl.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── com │ └── example │ ├── AppTests.java │ ├── controller │ └── BookControllerTest.java │ └── service │ └── BookServiceImplTest.java ├── 012. Consultas básicas con Spring Data JPA └── spring-data-jpa-consultas │ ├── .gitignore │ ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties │ ├── README.md │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── example │ │ │ ├── App.java │ │ │ ├── model │ │ │ └── Employee.java │ │ │ └── repository │ │ │ └── EmployeeRepository.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── com │ └── example │ └── AppTests.java ├── 013. Modelos de datos con asociaciones con Spring Data JPA └── spring-data-jpa-asociaciones │ ├── .gitignore │ ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties │ ├── README.md │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── example │ │ │ ├── App.java │ │ │ ├── model │ │ │ ├── Address.java │ │ │ ├── Company.java │ │ │ ├── Employee.java │ │ │ ├── EmployeeType.java │ │ │ └── Project.java │ │ │ └── repository │ │ │ ├── AddressRepository.java │ │ │ ├── CompanyRepository.java │ │ │ ├── EmployeeRepository.java │ │ │ └── ProjectRepository.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── com │ └── example │ └── AppTests.java ├── 014. Crea un CRUD con Spring Boot, Spring Data JPA y Thymeleaf └── spring-crud-thymeleaf │ ├── .gitignore │ ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties │ ├── README.md │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── example │ │ │ ├── App.java │ │ │ ├── controller │ │ │ └── BookController.java │ │ │ ├── model │ │ │ └── Book.java │ │ │ └── repository │ │ │ └── BookRepository.java │ └── resources │ │ ├── application.properties │ │ └── templates │ │ ├── book-form.html │ │ ├── book-list.html │ │ └── book-view.html │ └── test │ └── java │ └── com │ └── example │ └── AppTests.java ├── 015. Introducción a Spring Data Redis └── spring-data-redis │ ├── .gitignore │ ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties │ ├── README.md │ ├── docker-compose.yml │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── example │ │ │ ├── App.java │ │ │ ├── domain │ │ │ └── Employee.java │ │ │ └── repository │ │ │ └── EmployeeRepository.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── com │ └── example │ └── AppTests.java ├── 016. Introducción a Spring Data MongoDB └── spring-data-mongodb │ ├── .gitignore │ ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties │ ├── README.md │ ├── docker-compose.yml │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── example │ │ │ ├── App.java │ │ │ ├── model │ │ │ └── Employee.java │ │ │ ├── repository │ │ │ └── EmployeeRepository.java │ │ │ └── service │ │ │ └── EmployeeService.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── com │ └── example │ └── AppTests.java ├── 017. Consultas con Spring Data MongoDB └── spring-data-mongodb-consultas │ ├── .gitignore │ ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties │ ├── README.md │ ├── docker-compose.yml │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── example │ │ │ ├── App.java │ │ │ ├── Employee.java │ │ │ └── EmployeeRepository.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── com │ └── example │ └── AppTests.java ├── 018. Implementa timeout en las peticiones de tu API REST └── spring-timeout │ ├── .gitignore │ ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties │ ├── README.md │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── example │ │ │ ├── Employee.java │ │ │ ├── EmployeeController.java │ │ │ ├── EmployeeRepository.java │ │ │ ├── EmployeeService.java │ │ │ └── SpringTimeoutApplication.java │ └── resources │ │ ├── application.properties.old │ │ └── application.yml │ └── test │ └── java │ └── com │ └── example │ └── SpringTimeoutApplicationTests.java ├── 019. Introducción a Spring WebFlux └── spring-webflux │ ├── .gitignore │ ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties │ ├── README.md │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── example │ │ │ ├── App.java │ │ │ ├── controller │ │ │ ├── BookAnnotationController.java │ │ │ └── BookFunctionalController.java │ │ │ ├── model │ │ │ └── Book.java │ │ │ ├── repository │ │ │ └── BookRepository.java │ │ │ └── service │ │ │ └── BookService.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── com │ └── example │ └── AppTests.java ├── 020. Introducción a Spring WebFlux con Kotlin └── spring-webflux-kotlin │ ├── .gitignore │ ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties │ ├── README.md │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ ├── main │ ├── kotlin │ │ └── com │ │ │ └── example │ │ │ ├── SpringWebfluxKotlinApplication.kt │ │ │ ├── controller │ │ │ └── BookFunctionalController.kt │ │ │ ├── domain │ │ │ └── Book.kt │ │ │ ├── repository │ │ │ └── BookRepository.kt │ │ │ └── service │ │ │ ├── BookHandler.kt │ │ │ ├── BookService.kt │ │ │ └── BookServiceImpl.kt │ └── resources │ │ └── application.properties │ └── test │ └── kotlin │ └── com │ └── example │ └── SpringWebfluxKotlinApplicationTests.kt ├── 021. Crea una aplicación web reactiva con Spring WebFlux y Thymeleaf └── spring-webflux-thymeleaf │ ├── .gitignore │ ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties │ ├── README.md │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── example │ │ │ ├── SpringWebfluxThymeleafApplication.java │ │ │ ├── example1 │ │ │ ├── controller │ │ │ │ └── EmployeeController.java │ │ │ ├── model │ │ │ │ └── Employee.java │ │ │ └── service │ │ │ │ └── EmployeeService.java │ │ │ ├── example2 │ │ │ ├── controller │ │ │ │ └── BookController.java │ │ │ ├── model │ │ │ │ └── Book.java │ │ │ └── remote │ │ │ │ └── BookRemoteService.java │ │ │ └── example3 │ │ │ ├── controller │ │ │ └── BookReactiveController.java │ │ │ ├── model │ │ │ └── Book.java │ │ │ └── remote │ │ │ └── BookRemoteReactiveService.java │ └── resources │ │ ├── application.properties │ │ └── templates │ │ ├── book-list.html │ │ └── employee-list.html │ └── test │ └── java │ └── com │ └── example │ └── SpringWebfluxThymeleafApplicationTests.java ├── 022. Spring vs. Spring Boot vs. Spring MVC └── spring-vs-springboot-vs-springmvc │ ├── README.md │ ├── pom.xml │ └── src │ └── main │ ├── java │ └── com │ │ └── example │ │ ├── Employee.java │ │ ├── EmployeeController.java │ │ ├── EmployeeService.java │ │ ├── EmployeeServiceImpl.java │ │ └── Main.java │ └── resources │ └── beans.xml ├── 023. Introducción a la programación dirigida por eventos con Spring └── spring-events │ ├── .gitignore │ ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties │ ├── README.md │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── example │ │ │ ├── SpringEventsApplication.java │ │ │ ├── controller │ │ │ └── EmployeeController.java │ │ │ ├── event │ │ │ ├── EmployeeEvent.java │ │ │ ├── EmployeeEventListener.java │ │ │ └── EmployeeEventPublisher.java │ │ │ ├── model │ │ │ └── Employee.java │ │ │ ├── repository │ │ │ └── EmployeeRepository.java │ │ │ └── service │ │ │ ├── EmployeeService.java │ │ │ └── EmployeeServiceImpl.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── com │ └── example │ └── SpringEventsApplicationTests.java ├── 024. Desarrolla una aplicación con Spring Boot y Angular └── spring-angular │ ├── README.md │ ├── backend │ ├── .gitignore │ ├── .mvn │ │ └── wrapper │ │ │ ├── maven-wrapper.jar │ │ │ └── maven-wrapper.properties │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── example │ │ │ │ ├── BackendApplication.java │ │ │ │ ├── Book.java │ │ │ │ └── BookController.java │ │ └── resources │ │ │ └── application.properties │ │ └── test │ │ └── java │ │ └── com │ │ └── example │ │ └── BackendApplicationTests.java │ └── frontend │ ├── .browserslistrc │ ├── .editorconfig │ ├── .gitignore │ ├── README.md │ ├── angular.json │ ├── frontend.iml │ ├── karma.conf.js │ ├── package-lock.json │ ├── package.json │ ├── src │ ├── app │ │ ├── app-routing.module.ts │ │ ├── app.component.css │ │ ├── app.component.html │ │ ├── app.component.spec.ts │ │ ├── app.component.ts │ │ ├── app.module.ts │ │ ├── book-list │ │ │ ├── book-list.component.css │ │ │ ├── book-list.component.html │ │ │ ├── book-list.component.spec.ts │ │ │ └── book-list.component.ts │ │ ├── models │ │ │ └── book.ts │ │ └── services │ │ │ ├── book.service.spec.ts │ │ │ └── book.service.ts │ ├── assets │ │ └── .gitkeep │ ├── environments │ │ ├── environment.prod.ts │ │ └── environment.ts │ ├── favicon.ico │ ├── index.html │ ├── main.ts │ ├── polyfills.ts │ ├── styles.css │ └── test.ts │ ├── tsconfig.app.json │ ├── tsconfig.json │ └── tsconfig.spec.json ├── 025. Desarrolla una aplicación con Spring Boot y React └── spring-react │ ├── README.md │ ├── backend │ ├── .gitignore │ ├── .mvn │ │ └── wrapper │ │ │ ├── maven-wrapper.jar │ │ │ └── maven-wrapper.properties │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── example │ │ │ │ ├── BackendApplication.java │ │ │ │ ├── Employee.java │ │ │ │ └── EmployeeController.java │ │ └── resources │ │ │ └── application.properties │ │ └── test │ │ └── java │ │ └── com │ │ └── example │ │ └── BackendApplicationTests.java │ └── frontend │ ├── .gitignore │ ├── README.md │ ├── frontend.iml │ ├── package-lock.json │ ├── package.json │ ├── public │ ├── favicon.ico │ ├── index.html │ ├── logo192.png │ ├── logo512.png │ ├── manifest.json │ └── robots.txt │ └── src │ ├── App.css │ ├── App.js │ ├── App.test.js │ ├── components │ └── EmployeeList.js │ ├── index.css │ ├── index.js │ ├── logo.svg │ ├── reportWebVitals.js │ └── setupTests.js ├── 026. Desarrolla una aplicación con Spring Boot y Vue.js └── spring-vue │ ├── README.md │ ├── backend │ ├── .gitignore │ ├── .mvn │ │ └── wrapper │ │ │ ├── maven-wrapper.jar │ │ │ └── maven-wrapper.properties │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── example │ │ │ │ ├── BackendApplication.java │ │ │ │ ├── Employee.java │ │ │ │ └── EmployeeController.java │ │ └── resources │ │ │ └── application.properties │ │ └── test │ │ └── java │ │ └── com │ │ └── example │ │ └── BackendApplicationTests.java │ └── frontend │ ├── .gitignore │ ├── README.md │ ├── babel.config.js │ ├── frontend.iml │ ├── jsconfig.json │ ├── package-lock.json │ ├── package.json │ ├── public │ ├── favicon.ico │ └── index.html │ ├── src │ ├── App.vue │ ├── assets │ │ └── logo.png │ ├── components │ │ ├── EmployeeDetail.vue │ │ ├── EmployeeList.vue │ │ └── HelloWorld.vue │ ├── main.js │ ├── router.js │ └── services │ │ └── EmployeeService.js │ └── vue.config.js ├── 027. Seguridad JWT en tu API Rest con Spring Boot └── spring-jwt │ ├── .gitignore │ ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties │ ├── README.md │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── example │ │ │ ├── SpringJwtApplication.java │ │ │ ├── controller │ │ │ ├── AuthController.java │ │ │ └── HelloController.java │ │ │ ├── dto │ │ │ ├── LoginRequest.java │ │ │ ├── LoginResponse.java │ │ │ └── UserRegisterDTO.java │ │ │ ├── model │ │ │ ├── UserAuthority.java │ │ │ └── UserEntity.java │ │ │ ├── repository │ │ │ └── UserEntityRepository.java │ │ │ ├── security │ │ │ ├── JwtFilter.java │ │ │ ├── JwtTokenProvider.java │ │ │ ├── PasswordEncoderConfig.java │ │ │ ├── SecurityConfig.java │ │ │ └── UserDetailsServiceImpl.java │ │ │ └── service │ │ │ └── UserEntityService.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── com │ └── example │ └── SpringJwtApplicationTests.java ├── 028. Mejora la internacionalización de tu aplicación web con Spring Boot └── spring-i18n │ ├── .gitignore │ ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties │ ├── README.md │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── example │ │ │ ├── SpringI18nApplication.java │ │ │ ├── config │ │ │ ├── LangMessageSource.java │ │ │ └── WebLangConfig.java │ │ │ ├── controller │ │ │ └── IndexController.java │ │ │ ├── model │ │ │ └── Language.java │ │ │ └── repository │ │ │ └── LanguageRepository.java │ └── resources │ │ ├── application.properties │ │ ├── data.sql │ │ └── templates │ │ └── index.html │ └── test │ └── java │ └── com │ └── example │ └── SpringI18nApplicationTests.java ├── 029. Testea tu API REST con Spring Boot └── spring-rest-testing │ ├── .gitignore │ ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties │ ├── README.md │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── example │ │ │ ├── SpringRestTestingApplication.java │ │ │ └── customer │ │ │ ├── BadRequestException.java │ │ │ ├── Customer.java │ │ │ ├── CustomerController.java │ │ │ └── CustomerRepository.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── com │ └── example │ ├── CustomerControllerTest.java │ ├── CutomerControllerITest.java │ └── SpringRestTestingApplicationTests.java ├── 030. Testea la persistencia de tu aplicación con Spring Boot └── spring-data-jpa-testing │ ├── .gitignore │ ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties │ ├── README.md │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── example │ │ │ ├── App.java │ │ │ ├── Order.java │ │ │ └── OrderRepository.java │ └── resources │ │ └── application.properties │ └── test │ ├── java │ └── com │ │ └── example │ │ └── OrderRepositoryTest.java │ └── resources │ ├── application.properties │ └── com │ └── example │ ├── customers.sql │ └── orders.sql ├── 031. Test Driven Development con Spring Boot └── spring-tdd │ ├── .gitignore │ ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties │ ├── README.md │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── example │ │ │ ├── Product.java │ │ │ ├── ProductController.java │ │ │ ├── ProductRepository.java │ │ │ ├── ProductService.java │ │ │ └── SpringTddApplication.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── com │ └── example │ ├── ProductControllerTest.java │ └── ProductServiceTest.java ├── 032. Documenta tu API REST con Spring Rest Docs └── spring-rest-docs │ ├── .gitignore │ ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties │ ├── README.md │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ ├── docs │ └── asciidoc │ │ └── index.adoc │ ├── main │ ├── java │ │ └── com │ │ │ └── example │ │ │ ├── App.java │ │ │ └── customer │ │ │ ├── BadRequestException.java │ │ │ ├── Customer.java │ │ │ ├── CustomerController.java │ │ │ └── CustomerRepository.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── com │ └── example │ └── CustomerControllerTest.java ├── 033. Cómo solucionar los problemas de fetching con Spring Data JPA └── spring-data-jpa-fetching │ ├── .gitignore │ ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties │ ├── README.md │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── example │ │ │ ├── App.java │ │ │ ├── model │ │ │ ├── Address.java │ │ │ ├── Author.java │ │ │ └── Book.java │ │ │ ├── projection │ │ │ ├── BookTitle.java │ │ │ └── BookView.java │ │ │ └── repository │ │ │ ├── AddressRepository.java │ │ │ ├── AuthorRepository.java │ │ │ └── BookRepository.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── com │ └── example │ └── AppTests.java ├── 034. Mejora tus modelos de datos de Spring Data JPA usando grafos de entidad └── spring-data-jpa-entitygraph │ ├── .gitignore │ ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties │ ├── README.md │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── example │ │ │ ├── App.java │ │ │ ├── dao │ │ │ ├── BookDAO.java │ │ │ └── BookDAOImpl.java │ │ │ ├── model │ │ │ ├── Book.java │ │ │ ├── Category.java │ │ │ ├── Rating.java │ │ │ └── User.java │ │ │ └── repository │ │ │ ├── BookRepository.java │ │ │ ├── CategoryRepository.java │ │ │ ├── RatingRepository.java │ │ │ └── UserRepository.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── com │ └── example │ └── AppTests.java ├── 035. Consultas con Criteria Query con Spring Data JPA └── spring-data-jpa-criteria │ ├── .gitignore │ ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties │ ├── README.md │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── example │ │ │ ├── App.java │ │ │ ├── Category.java │ │ │ ├── CategoryRepository.java │ │ │ ├── Product.java │ │ │ ├── ProductDAO.java │ │ │ └── ProductRepository.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── com │ └── example │ └── AppTests.java ├── 036. Consultas dinámicas con Spring Data JPA └── spring-data-jpa-spec-qbe │ ├── .gitignore │ ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties │ ├── README.md │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── example │ │ │ ├── App.java │ │ │ ├── Product.java │ │ │ ├── ProductDAO.java │ │ │ └── ProductRepository.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── com │ └── example │ └── AppTests.java ├── 037. Diferentes tipos de repositorios en Spring Data JPA └── spring-data-jpa-repositories │ ├── .gitignore │ ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties │ ├── README.md │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── example │ │ │ ├── App.java │ │ │ ├── model │ │ │ ├── Customer.java │ │ │ ├── Employee.java │ │ │ └── Product.java │ │ │ └── repository │ │ │ ├── CustomerRepository.java │ │ │ ├── EmployeeRepository.java │ │ │ └── ProductRepository.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── com │ └── example │ └── AppTests.java ├── 038. Customiza tus repositorios con Spring Data JPA └── spring-data-jpa-custom-repositories │ ├── .gitignore │ ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties │ ├── README.md │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── example │ │ │ ├── App.java │ │ │ ├── example1 │ │ │ ├── Customer.java │ │ │ ├── Offer.java │ │ │ ├── Product.java │ │ │ ├── ProductDAO.java │ │ │ ├── ProductDAOImpl.java │ │ │ ├── ProductRepository.java │ │ │ └── ProductStats.java │ │ │ └── example2 │ │ │ ├── BaseUser.java │ │ │ ├── BaseUserRepository.java │ │ │ ├── Employee.java │ │ │ ├── EmployeeRepository.java │ │ │ ├── Person.java │ │ │ └── PersonRepository.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── com │ └── example │ └── AppTests.java ├── 039. Auditoría de datos con Spring Data JPA └── spring-data-jpa-auditing │ ├── .gitignore │ ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties │ ├── README.md │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── example │ │ │ ├── App.java │ │ │ ├── config │ │ │ ├── AuditConfig.java │ │ │ └── SecurityConfig.java │ │ │ ├── controller │ │ │ ├── LoginController.java │ │ │ └── ProductController.java │ │ │ ├── model │ │ │ ├── Login.java │ │ │ └── Product.java │ │ │ └── repository │ │ │ └── ProductRepository.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── com │ └── example │ └── AppTests.java ├── 040. Cómo invocar procedimientos almacenados con Spring Data JPA └── spring-data-jpa-procedure │ ├── .gitignore │ ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties │ ├── README.md │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── example │ │ │ ├── App.java │ │ │ ├── Employee.java │ │ │ ├── EmployeeRepository.java │ │ │ └── EmployeeService.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── com │ └── example │ └── AppTests.java ├── 041. Manejo de transacciones con Spring Data JPA └── spring-data-jpa-transactions │ ├── .gitignore │ ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties │ ├── README.md │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── example │ │ │ ├── App.java │ │ │ ├── lock │ │ │ ├── optimistic │ │ │ │ ├── Customer.java │ │ │ │ ├── CustomerClient.java │ │ │ │ ├── CustomerRepository.java │ │ │ │ └── CustomerService.java │ │ │ └── pessimistic │ │ │ │ ├── Vehicle.java │ │ │ │ ├── VehicleClient.java │ │ │ │ ├── VehicleRepository.java │ │ │ │ └── VehicleService.java │ │ │ └── propagation │ │ │ ├── model │ │ │ ├── Employee.java │ │ │ └── EmployeeAddress.java │ │ │ ├── repository │ │ │ ├── EmployeeAddressRepository.java │ │ │ └── EmployeeRepository.java │ │ │ └── service │ │ │ ├── CompanyService.java │ │ │ ├── EmployeeAddressService.java │ │ │ └── EmployeeService.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── com │ └── example │ ├── LockTest.java │ ├── PropagationTest.java │ └── TransactionalTest.java ├── 042. Mejora el borrado de entidades con Spring Data JPA └── spring-data-jpa-deletion │ ├── .gitignore │ ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties │ ├── README.md │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── example │ │ │ ├── App.java │ │ │ ├── cascadeorphan │ │ │ ├── Author.java │ │ │ ├── AuthorRepository.java │ │ │ ├── Book.java │ │ │ └── BookRepository.java │ │ │ └── sqldelete │ │ │ ├── Employee.java │ │ │ └── EmployeeRepository.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── com │ └── example │ └── AppTests.java ├── 043. Configuración programática del origen de datos con Spring Data JPA └── spring-data-jpa-datasource │ ├── .gitignore │ ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties │ ├── README.md │ ├── db │ ├── database.mv.db │ └── database.trace.db │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── example │ │ │ ├── App.java │ │ │ ├── config │ │ │ └── PersistenceConfig.java │ │ │ ├── model │ │ │ └── Employee.java │ │ │ └── repository │ │ │ └── EmployeeRepository.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── com │ └── example │ └── AppTests.java ├── 044. Implementa un mecanismo de caché con Spring Boot y Redis └── spring-redis-cache │ ├── .gitignore │ ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties │ ├── README.md │ ├── docker-compose.yml │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── example │ │ │ ├── App.java │ │ │ ├── controller │ │ │ └── CustomerController.java │ │ │ ├── model │ │ │ └── Customer.java │ │ │ ├── repository │ │ │ └── CustomerRepository.java │ │ │ └── service │ │ │ └── CustomerService.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── com │ └── example │ └── AppTests.java ├── 045. Cómo generar tu esquema de base de datos con Spring Data JPA └── spring-data-jpa-schemagen │ ├── .gitignore │ ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties │ ├── README.md │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── example │ │ │ ├── App.java │ │ │ └── Employee.java │ └── resources │ │ ├── application.properties │ │ ├── db │ │ ├── data-mysql.sql │ │ └── schema-mysql.sql │ │ └── import_employees.sql │ └── test │ └── java │ └── com │ └── example │ └── AppTests.java ├── 046. Aprovecha el plugin JPA Buddy de Intellij IDEA en tus proyectos Spring Data JPA └── spring-data-jpa-jpabuddy │ ├── .gitignore │ ├── .jpb │ ├── jpb-settings.xml │ └── persistence-units.xml │ ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties │ ├── README.md │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── example │ │ │ ├── App.java │ │ │ ├── Author.java │ │ │ ├── Customer.java │ │ │ ├── CustomerDto.java │ │ │ ├── CustomerRepository.java │ │ │ ├── Employee.java │ │ │ └── Type.java │ └── resources │ │ ├── 06-01-changelog.xml │ │ └── application.properties │ └── test │ └── java │ └── com │ └── example │ └── AppTests.java ├── 047. Cómo mantener tu esquema de base de datos con Spring Data JPA y Flyway └── spring-data-jpa-flyway │ ├── .gitignore │ ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties │ ├── README.md │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── example │ │ │ ├── App.java │ │ │ └── FlywayCallback.java │ └── resources │ │ ├── application.properties │ │ └── db │ │ ├── callbacks │ │ └── afterMigrate.sql │ │ └── migration │ │ ├── V1_0_1__init.sql │ │ └── V1_1_0__employees_data.sql │ └── test │ └── java │ └── com │ └── example │ └── AppTests.java ├── 048. Cómo mantener tu esquema de base de datos con Spring Data JPA y Liquibase └── spring-data-jpa-liquibase │ ├── .gitignore │ ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties │ ├── README.md │ ├── liquibase.properties │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── example │ │ │ └── App.java │ └── resources │ │ ├── application.properties │ │ └── liquibase │ │ ├── changelog │ │ └── employee.xml │ │ ├── data │ │ └── employees.csv │ │ └── master.xml │ └── test │ └── java │ └── com │ └── example │ └── AppTests.java ├── 049. Consultas QueryDSL con Spring Data MongoDB └── spring-data-mongo-querydsl │ ├── .gitignore │ ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties │ ├── README.md │ ├── docker-compose.yml │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── example │ │ │ ├── App.java │ │ │ ├── dao │ │ │ └── BookDAO.java │ │ │ ├── model │ │ │ └── Book.java │ │ │ └── repository │ │ │ └── BookRepository.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── com │ └── example │ └── AppTests.java ├── 050. Proyecciones y Agregaciones con Spring Data MongoDB └── spring-data-mongodb-proj-agg │ ├── .gitignore │ ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties │ ├── README.md │ ├── docker-compose.yml │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── example │ │ │ ├── App.java │ │ │ ├── dao │ │ │ └── ProductDAO.java │ │ │ ├── dto │ │ │ ├── PriceByCategory.java │ │ │ └── PriceByManufacturer.java │ │ │ ├── model │ │ │ └── Product.java │ │ │ └── repository │ │ │ └── ProductRepository.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── com │ └── example │ └── AppTests.java ├── 051. Implementa un rate-limit en tu API REST con Spring Boot └── spring-rest-apirate-limit │ ├── .gitignore │ ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties │ ├── README.md │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── example │ │ │ ├── App.java │ │ │ ├── controller │ │ │ ├── AuthController.java │ │ │ ├── HelloController.java │ │ │ └── ProductController.java │ │ │ ├── dto │ │ │ ├── LoginRequest.java │ │ │ ├── LoginResponse.java │ │ │ └── UserRegister.java │ │ │ ├── model │ │ │ ├── Product.java │ │ │ ├── Subscription.java │ │ │ ├── UserAuthority.java │ │ │ └── UserEntity.java │ │ │ ├── ratelimit │ │ │ ├── RateLimitConfig.java │ │ │ └── RateLimitInterceptor.java │ │ │ ├── repository │ │ │ ├── ProductRepository.java │ │ │ ├── SubscriptionRepository.java │ │ │ └── UserEntityRepository.java │ │ │ ├── security │ │ │ ├── JwtFilter.java │ │ │ ├── JwtTokenExtractor.java │ │ │ ├── JwtTokenProvider.java │ │ │ ├── PasswordEncoderConfig.java │ │ │ ├── SecurityConfig.java │ │ │ └── UserDetailsServiceImpl.java │ │ │ └── service │ │ │ ├── SubscriptionService.java │ │ │ └── UserEntityService.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── com │ └── example │ └── AppTests.java ├── 052. Mejora tu API REST con Spring Boot aprovechando la librería Jackson └── spring-jackson │ ├── .gitignore │ ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties │ ├── README.md │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── example │ │ │ ├── App.java │ │ │ ├── config │ │ │ └── JacksonConfig.java │ │ │ ├── controller │ │ │ ├── CustomerController.java │ │ │ └── VehicleController.java │ │ │ ├── model │ │ │ ├── Customer.java │ │ │ └── Vehicle.java │ │ │ └── repository │ │ │ ├── CustomerRepository.java │ │ │ └── VehicleRepository.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── com │ └── example │ └── AppTests.java ├── 053. Utiliza JSON Views para mejorar las respuestas de tu API REST con Spring Boot └── spring-jackson-jsonview │ ├── .gitignore │ ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties │ ├── README.md │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── example │ │ │ ├── App.java │ │ │ ├── controller │ │ │ └── CustomerController.java │ │ │ └── model │ │ │ ├── Customer.java │ │ │ └── CustomerView.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── com │ └── example │ └── AppTests.java ├── 054. Spring Security Reactive └── spring-security-reactive │ ├── .gitignore │ ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties │ ├── README.md │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── example │ │ │ ├── App.java │ │ │ ├── config │ │ │ └── SecurityConfig.java │ │ │ ├── controller │ │ │ └── HelloController.java │ │ │ ├── dto │ │ │ └── Login.java │ │ │ └── service │ │ │ └── UserDetailsServiceImpl.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── com │ └── example │ └── AppTests.java ├── 055. Implementa repositorios reactivos con Spring Data R2DBC └── spring-data-r2dbc │ ├── .gitignore │ ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties │ ├── README.md │ ├── docker-compose.yml │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── example │ │ │ ├── App.java │ │ │ ├── model │ │ │ └── Vehicle.java │ │ │ ├── repository │ │ │ └── VehicleRepository.java │ │ │ └── service │ │ │ ├── VehicleService.java │ │ │ └── VehicleServiceImpl.java │ └── resources │ │ ├── application.properties │ │ ├── data.sql │ │ └── schema.sql │ └── test │ └── java │ └── com │ └── example │ └── AppTests.java ├── 056. Implementa repositorios reactivos con Spring Data MongoDB Reactive └── spring-data-mongodb-reactive │ ├── .gitignore │ ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties │ ├── README.md │ ├── docker-compose.yml │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── example │ │ │ ├── App.java │ │ │ ├── model │ │ │ └── Vehicle.java │ │ │ ├── repository │ │ │ └── VehicleRepository.java │ │ │ └── service │ │ │ ├── VehicleService.java │ │ │ └── VehicleServiceImpl.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── com │ └── example │ └── AppTests.java ├── 057. Implementa rápidamente una API REST con Spring Data REST └── spring-data-rest │ ├── .gitignore │ ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties │ ├── README.md │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── example │ │ │ ├── App.java │ │ │ ├── handler │ │ │ ├── CustomerEventHandler.java │ │ │ ├── ErrorHandler.java │ │ │ └── ErrorMessage.java │ │ │ ├── model │ │ │ ├── Address.java │ │ │ └── Customer.java │ │ │ ├── repository │ │ │ ├── AddressRepository.java │ │ │ └── CustomerRepository.java │ │ │ └── validation │ │ │ ├── CustomerValidator.java │ │ │ └── ValidationConfig.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── com │ └── example │ └── AppTests.java ├── 058. Cómo enviar un email basado en una plantilla de Thymeleaf con Spring Boot └── spring-thymeleaf-email │ ├── .gitignore │ ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties │ ├── README.md │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── example │ │ │ ├── App.java │ │ │ └── MailService.java │ └── resources │ │ ├── application.properties │ │ └── templates │ │ └── mail │ │ ├── bye.html │ │ └── hello.html │ └── test │ └── java │ └── com │ └── example │ └── AppTests.java ├── 059. Websockets con Spring Boot └── spring-websockets │ ├── .gitignore │ ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties │ ├── README.md │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── example │ │ │ ├── App.java │ │ │ ├── config │ │ │ └── WebSocketConfig.java │ │ │ └── endpoint │ │ │ ├── MessageEndpoint.java │ │ │ ├── ScheduledEndpoint.java │ │ │ └── SubscribeEndpoint.java │ └── resources │ │ ├── application.properties │ │ └── static │ │ ├── app.js │ │ ├── index.html │ │ └── main.css │ └── test │ └── java │ └── com │ └── example │ └── AppTests.java ├── 060. Implementa la subida de ficheros a una API REST con Spring Boot y MongoDB └── spring-mongodb-upload-file │ ├── .gitignore │ ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties │ ├── README.md │ ├── docker-compose.yml │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── example │ │ │ ├── App.java │ │ │ ├── controller │ │ │ └── CustomerController.java │ │ │ ├── model │ │ │ └── Customer.java │ │ │ ├── repository │ │ │ └── CustomerRepository.java │ │ │ └── service │ │ │ └── CustomerService.java │ └── resources │ │ ├── application.properties │ │ └── templates │ │ ├── customer.html │ │ └── index.html │ └── test │ └── java │ └── com │ └── example │ └── AppTests.java ├── 061. Implementa OAuth 2.0 con Spring Security └── spring-security-oauth-github │ ├── .gitignore │ ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties │ ├── README.md │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── example │ │ │ ├── App.java │ │ │ ├── config │ │ │ └── SecurityConfig.java │ │ │ └── controller │ │ │ └── HelloController.java │ └── resources │ │ ├── application.properties │ │ └── templates │ │ ├── index.html │ │ ├── page1.html │ │ └── page2.html │ └── test │ └── java │ └── com │ └── example │ └── AppTests.java ├── 062. Implementa la autenticación en dos pasos con Spring Boot └── spring-security-2fa │ ├── .gitignore │ ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties │ ├── README.md │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── example │ │ │ ├── SpringSecurity2faApplication.java │ │ │ ├── config │ │ │ ├── MvcConfig.java │ │ │ ├── PasswordConfig.java │ │ │ ├── SecondFactorAuthSuccessHandler.java │ │ │ └── SecurityConfig.java │ │ │ ├── controller │ │ │ ├── CodeController.java │ │ │ └── VerificationCodeException.java │ │ │ ├── model │ │ │ ├── Account.java │ │ │ └── UserDetailsAdapter.java │ │ │ ├── repository │ │ │ ├── AccountRepository.java │ │ │ └── InMemoryAccountRepository.java │ │ │ ├── service │ │ │ └── UserDetailsServiceAdapter.java │ │ │ └── utils │ │ │ └── SecurityUtils.java │ └── resources │ │ ├── application.properties │ │ └── templates │ │ ├── code.html │ │ ├── home.html │ │ └── login.html │ └── test │ └── java │ └── com │ └── example │ └── SpringSecurity2faApplicationTests.java ├── 063. Mejora la seguridad de tu aplicación Spring Boot └── spring-security-authprovider │ ├── .gitignore │ ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties │ ├── README.md │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── example │ │ │ ├── App.java │ │ │ ├── config │ │ │ ├── AuthenticationProviderImpl.java │ │ │ ├── PasswordConfig.java │ │ │ └── SecurityConfig.java │ │ │ ├── controller │ │ │ └── UserController.java │ │ │ ├── dto │ │ │ └── RegisterDTO.java │ │ │ ├── model │ │ │ ├── UserAuthority.java │ │ │ └── UserEntity.java │ │ │ ├── repository │ │ │ └── UserEntityRepository.java │ │ │ └── service │ │ │ └── UserDetailsServiceImpl.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── com │ └── example │ └── AppTests.java ├── 064. Implementa un mecanismo de Remember me en tu aplicación web con Spring Boot └── spring-security-remember-me │ ├── .gitignore │ ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties │ ├── README.md │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── example │ │ │ ├── App.java │ │ │ ├── config │ │ │ └── SecurityConfig.java │ │ │ ├── controller │ │ │ └── UserController.java │ │ │ ├── model │ │ │ ├── UserAuthority.java │ │ │ └── UserEntity.java │ │ │ ├── repository │ │ │ └── UserEntityRepository.java │ │ │ └── service │ │ │ └── UserDetailsServiceImpl.java │ └── resources │ │ ├── application.properties │ │ ├── schema.sql │ │ └── templates │ │ ├── index.html │ │ ├── login.html │ │ ├── register-success.html │ │ ├── signup-form.html │ │ └── users.html │ └── test │ └── java │ └── com │ └── example │ └── AppTests.java ├── 065. Seguridad a nivel de método en tu aplicación con Spring Boot └── spring-security-method │ ├── .gitignore │ ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties │ ├── README.md │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── example │ │ │ ├── App.java │ │ │ ├── config │ │ │ └── SecurityConfig.java │ │ │ ├── model │ │ │ ├── Employee.java │ │ │ ├── Task.java │ │ │ └── Vehicle.java │ │ │ └── service │ │ │ ├── EmployeeService.java │ │ │ ├── TaskService.java │ │ │ └── VehicleService.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── com │ └── example │ ├── EmployeeServiceTests.java │ ├── TaskServiceTests.java │ └── VehicleServiceTest.java ├── 066. Utiliza Spring Security en los test de tu aplicación con Spring Boot └── spring-security-test │ ├── .gitignore │ ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties │ ├── README.md │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── example │ │ │ ├── App.java │ │ │ ├── config │ │ │ └── SecurityConfig.java │ │ │ └── controller │ │ │ └── HelloController.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── com │ └── example │ ├── AppTests.java │ └── config │ └── TestConfig.java ├── 067. Implementa un mecanismo de registro protegido por captcha └── spring-captcha │ ├── .gitignore │ ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties │ ├── README.md │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── example │ │ │ ├── App.java │ │ │ ├── captcha │ │ │ ├── CaptchaAspect.java │ │ │ ├── CaptchaValidator.java │ │ │ └── RequiresCaptcha.java │ │ │ ├── controller │ │ │ └── HelloController.java │ │ │ └── dto │ │ │ ├── CaptchaResponse.java │ │ │ ├── HelloDTO.java │ │ │ └── HelloResponseDTO.java │ └── resources │ │ ├── application.properties │ │ └── static │ │ └── index.html │ └── test │ └── java │ └── com │ └── example │ └── AppTests.java ├── 068. Implementa SSO con Spring Boot y Google └── spring-security-oauth-google │ ├── README.md │ ├── app1 │ ├── .gitignore │ ├── .mvn │ │ └── wrapper │ │ │ ├── maven-wrapper.jar │ │ │ └── maven-wrapper.properties │ ├── README.md │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── example │ │ │ │ ├── App1Application.java │ │ │ │ ├── config │ │ │ │ └── SecurityConfig.java │ │ │ │ └── controller │ │ │ │ └── HelloController.java │ │ └── resources │ │ │ └── application.properties │ │ └── test │ │ └── java │ │ └── com │ │ └── example │ │ ├── App1ApplicationTests.java │ │ ├── config │ │ └── SecurityConfig.java │ │ └── controller │ │ └── HelloController.java │ └── app2 │ ├── .gitignore │ ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── example │ │ │ ├── App2Application.java │ │ │ ├── config │ │ │ └── SecurityConfig.java │ │ │ └── controller │ │ │ └── HelloController.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── com │ └── example │ └── App2ApplicationTests.java ├── 069. Implementa SSO con Spring Boot y GitHub └── spring-security-oauth-sso-github │ ├── README.md │ ├── app1 │ ├── .gitignore │ ├── .mvn │ │ └── wrapper │ │ │ ├── maven-wrapper.jar │ │ │ └── maven-wrapper.properties │ ├── README.md │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── example │ │ │ │ ├── App1Application.java │ │ │ │ ├── config │ │ │ │ └── SecurityConfig.java │ │ │ │ └── controller │ │ │ │ └── HelloController.java │ │ └── resources │ │ │ └── application.properties │ │ └── test │ │ └── java │ │ └── com │ │ └── example │ │ └── App1ApplicationTests.java │ └── app2 │ ├── .gitignore │ ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── example │ │ │ ├── App2Application.java │ │ │ ├── config │ │ │ └── SecurityConfig.java │ │ │ └── controller │ │ │ └── HelloController.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── com │ └── example │ └── App2ApplicationTests.java ├── 070. Despliega tu aplicación Spring Boot con Docker └── spring-docker │ ├── .gitignore │ ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties │ ├── Dockerfile │ ├── README.md │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── example │ │ │ ├── App.java │ │ │ ├── controller │ │ │ └── CustomerController.java │ │ │ └── model │ │ │ └── Customer.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── com │ └── example │ └── AppTests.java ├── 071. Despliega con Docker Compose tu aplicación Spring Boot + Angular + PostgreSQL └── spring-docker-compose │ ├── README.md │ ├── backend │ ├── .gitignore │ ├── .mvn │ │ └── wrapper │ │ │ ├── maven-wrapper.jar │ │ │ └── maven-wrapper.properties │ ├── Dockerfile │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── example │ │ │ ├── App.java │ │ │ ├── Book.java │ │ │ ├── BookController.java │ │ │ └── BookRepository.java │ │ └── resources │ │ └── application.properties │ ├── docker-compose.yml │ └── frontend │ ├── .browserslistrc │ ├── .editorconfig │ ├── .gitignore │ ├── Dockerfile │ ├── README.md │ ├── angular.json │ ├── frontend.iml │ ├── karma.conf.js │ ├── package-lock.json │ ├── package.json │ ├── src │ ├── app │ │ ├── app-routing.module.ts │ │ ├── app.component.css │ │ ├── app.component.html │ │ ├── app.component.spec.ts │ │ ├── app.component.ts │ │ ├── app.module.ts │ │ ├── components │ │ │ └── book-list │ │ │ │ ├── book-list.component.css │ │ │ │ ├── book-list.component.html │ │ │ │ ├── book-list.component.spec.ts │ │ │ │ └── book-list.component.ts │ │ ├── models │ │ │ ├── book.spec.ts │ │ │ └── book.ts │ │ └── services │ │ │ ├── book.service.spec.ts │ │ │ └── book.service.ts │ ├── assets │ │ └── .gitkeep │ ├── environments │ │ ├── environment.prod.ts │ │ └── environment.ts │ ├── favicon.ico │ ├── index.html │ ├── main.ts │ ├── polyfills.ts │ ├── styles.css │ └── test.ts │ ├── tsconfig.app.json │ ├── tsconfig.json │ └── tsconfig.spec.json ├── 072. Externaliza la configuración de tu aplicación con Spring Boot └── spring-cloud-config │ ├── .gitignore │ ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties │ ├── README.md │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── example │ │ │ └── SpringCloudConfigApplication.java │ └── resources │ │ └── bootstrap.yml │ └── test │ └── java │ └── com │ └── example │ └── SpringCloudConfigApplicationTests.java ├── 073. Despliega tu aplicación Spring Boot en AWS EC2 └── spring-docker │ ├── .gitignore │ ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties │ ├── Dockerfile │ ├── README.md │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── example │ │ │ ├── App.java │ │ │ ├── controller │ │ │ └── CustomerController.java │ │ │ └── model │ │ │ └── Customer.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── com │ └── example │ └── AppTests.java ├── 074. Introducción a los microservicios con Spring Cloud └── spring-cloud │ ├── README.md │ ├── customers-service │ ├── .gitignore │ ├── .mvn │ │ └── wrapper │ │ │ ├── maven-wrapper.jar │ │ │ └── maven-wrapper.properties │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── example │ │ │ │ ├── CustomersServiceApplication.java │ │ │ │ ├── config │ │ │ │ └── RestTemplateConfig.java │ │ │ │ ├── controller │ │ │ │ ├── CustomerController.java │ │ │ │ └── DirectionsController.java │ │ │ │ ├── dto │ │ │ │ └── DirectionDTO.java │ │ │ │ ├── exception │ │ │ │ └── BusinessException.java │ │ │ │ └── service │ │ │ │ ├── CustomerService.java │ │ │ │ ├── DirectionService.java │ │ │ │ └── DirectionsFeignClient.java │ │ └── resources │ │ │ └── bootstrap.yml │ │ └── test │ │ └── java │ │ └── com │ │ └── example │ │ └── CustomersServiceApplicationTests.java │ ├── directions-service │ ├── .gitignore │ ├── .mvn │ │ └── wrapper │ │ │ ├── maven-wrapper.jar │ │ │ └── maven-wrapper.properties │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── example │ │ │ │ ├── DirectionsController.java │ │ │ │ ├── DirectionsServiceApplication.java │ │ │ │ └── dto │ │ │ │ └── DirectionDTO.java │ │ └── resources │ │ │ └── bootstrap.yml │ │ └── test │ │ └── java │ │ └── com │ │ └── example │ │ └── DirectionsServiceApplicationTests.java │ ├── spring-cloud-eureka │ ├── .gitignore │ ├── .mvn │ │ └── wrapper │ │ │ ├── maven-wrapper.jar │ │ │ └── maven-wrapper.properties │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── example │ │ │ │ └── SpringCloudEurekaApplication.java │ │ └── resources │ │ │ └── bootstrap.yml │ │ └── test │ │ └── java │ │ └── com │ │ └── example │ │ └── SpringCloudEurekaApplicationTests.java │ ├── spring-cloud-gateway │ ├── .gitignore │ ├── .mvn │ │ └── wrapper │ │ │ ├── maven-wrapper.jar │ │ │ └── maven-wrapper.properties │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── example │ │ │ │ └── SpringCloudGatewayApplication.java │ │ └── resources │ │ │ └── bootstrap.yml │ │ └── test │ │ └── java │ │ └── com │ │ └── example │ │ └── SpringCloudGatewayApplicationTests.java │ └── spring-config-external │ ├── microservice1 │ ├── .gitignore │ ├── .mvn │ │ └── wrapper │ │ │ ├── maven-wrapper.jar │ │ │ └── maven-wrapper.properties │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── example │ │ │ │ └── App.java │ │ └── resources │ │ │ └── bootstrap.yml │ │ └── test │ │ └── java │ │ └── com │ │ └── example │ │ └── Microservice1ApplicationTests.java │ └── spring-cloud-config │ ├── .gitignore │ ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── example │ │ │ └── App.java │ └── resources │ │ └── bootstrap.yml │ └── test │ └── java │ └── com │ └── example │ └── AppTests.java ├── 075. Mejora tus microservicios con Spring Cloud usando Resilience4j └── spring-cloud │ ├── README.md │ ├── customers-service │ ├── .gitignore │ ├── .mvn │ │ └── wrapper │ │ │ ├── maven-wrapper.jar │ │ │ └── maven-wrapper.properties │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── example │ │ │ │ ├── CustomersServiceApplication.java │ │ │ │ ├── config │ │ │ │ └── RestTemplateConfig.java │ │ │ │ ├── controller │ │ │ │ ├── CustomerController.java │ │ │ │ └── DirectionsController.java │ │ │ │ ├── dto │ │ │ │ └── DirectionDTO.java │ │ │ │ ├── exception │ │ │ │ └── BusinessException.java │ │ │ │ └── service │ │ │ │ ├── CustomerService.java │ │ │ │ ├── DirectionService.java │ │ │ │ └── DirectionsFeignClient.java │ │ └── resources │ │ │ └── bootstrap.yml │ │ └── test │ │ └── java │ │ └── com │ │ └── example │ │ └── CustomersServiceApplicationTests.java │ ├── directions-service │ ├── .gitignore │ ├── .mvn │ │ └── wrapper │ │ │ ├── maven-wrapper.jar │ │ │ └── maven-wrapper.properties │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── example │ │ │ │ ├── DirectionsController.java │ │ │ │ ├── DirectionsServiceApplication.java │ │ │ │ └── dto │ │ │ │ └── DirectionDTO.java │ │ └── resources │ │ │ └── bootstrap.yml │ │ └── test │ │ └── java │ │ └── com │ │ └── example │ │ └── DirectionsServiceApplicationTests.java │ ├── spring-cloud-eureka │ ├── .gitignore │ ├── .mvn │ │ └── wrapper │ │ │ ├── maven-wrapper.jar │ │ │ └── maven-wrapper.properties │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── example │ │ │ │ └── SpringCloudEurekaApplication.java │ │ └── resources │ │ │ └── bootstrap.yml │ │ └── test │ │ └── java │ │ └── com │ │ └── example │ │ └── SpringCloudEurekaApplicationTests.java │ ├── spring-cloud-gateway │ ├── .gitignore │ ├── .mvn │ │ └── wrapper │ │ │ ├── maven-wrapper.jar │ │ │ └── maven-wrapper.properties │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── example │ │ │ │ └── SpringCloudGatewayApplication.java │ │ └── resources │ │ │ └── bootstrap.yml │ │ └── test │ │ └── java │ │ └── com │ │ └── example │ │ └── SpringCloudGatewayApplicationTests.java │ └── spring-config-external │ ├── microservice1 │ ├── .gitignore │ ├── .mvn │ │ └── wrapper │ │ │ ├── maven-wrapper.jar │ │ │ └── maven-wrapper.properties │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── example │ │ │ │ └── App.java │ │ └── resources │ │ │ └── bootstrap.yml │ │ └── test │ │ └── java │ │ └── com │ │ └── example │ │ └── Microservice1ApplicationTests.java │ └── spring-cloud-config │ ├── .gitignore │ ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── example │ │ │ └── App.java │ └── resources │ │ └── bootstrap.yml │ └── test │ └── java │ └── com │ └── example │ └── AppTests.java ├── 076. Incluye seguridad en tus microservicios con Spring Cloud Gateway └── spring-security-microservices │ ├── README.md │ ├── product-service │ ├── .gitignore │ ├── .mvn │ │ └── wrapper │ │ │ ├── maven-wrapper.jar │ │ │ └── maven-wrapper.properties │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── example │ │ │ │ ├── ProductServiceApplication.java │ │ │ │ ├── config │ │ │ │ ├── RealmRoleConverter.java │ │ │ │ └── SecurityConfig.java │ │ │ │ └── controller │ │ │ │ └── Controller.java │ │ └── resources │ │ │ └── application.properties │ │ └── test │ │ └── java │ │ └── com │ │ └── example │ │ └── ProductServiceApplicationTests.java │ └── spring-cloud-gateway │ ├── .gitignore │ ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties │ ├── docker-compose.yml │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── example │ │ │ ├── SpringCloudGatewayApplication.java │ │ │ ├── config │ │ │ └── SecurityConfig.java │ │ │ └── controller │ │ │ └── Controller.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── com │ └── example │ └── SpringCloudGatewayApplicationTests.java ├── 077. Conecta tu aplicación Spring Boot con otros microservicios usando OpenFeign └── spring-cloud │ ├── README.md │ ├── customers-service │ ├── .gitignore │ ├── .mvn │ │ └── wrapper │ │ │ ├── maven-wrapper.jar │ │ │ └── maven-wrapper.properties │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── example │ │ │ │ ├── CustomersServiceApplication.java │ │ │ │ ├── config │ │ │ │ └── RestTemplateConfig.java │ │ │ │ ├── controller │ │ │ │ ├── CustomerController.java │ │ │ │ └── DirectionsController.java │ │ │ │ ├── dto │ │ │ │ └── DirectionDTO.java │ │ │ │ ├── exception │ │ │ │ └── BusinessException.java │ │ │ │ └── service │ │ │ │ ├── CustomerService.java │ │ │ │ ├── DirectionService.java │ │ │ │ └── DirectionsFeignClient.java │ │ └── resources │ │ │ └── bootstrap.yml │ │ └── test │ │ └── java │ │ └── com │ │ └── example │ │ └── CustomersServiceApplicationTests.java │ ├── directions-service │ ├── .gitignore │ ├── .mvn │ │ └── wrapper │ │ │ ├── maven-wrapper.jar │ │ │ └── maven-wrapper.properties │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── example │ │ │ │ ├── DirectionsController.java │ │ │ │ ├── DirectionsServiceApplication.java │ │ │ │ └── dto │ │ │ │ └── DirectionDTO.java │ │ └── resources │ │ │ └── bootstrap.yml │ │ └── test │ │ └── java │ │ └── com │ │ └── example │ │ └── DirectionsServiceApplicationTests.java │ ├── spring-cloud-eureka │ ├── .gitignore │ ├── .mvn │ │ └── wrapper │ │ │ ├── maven-wrapper.jar │ │ │ └── maven-wrapper.properties │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── example │ │ │ │ └── SpringCloudEurekaApplication.java │ │ └── resources │ │ │ └── bootstrap.yml │ │ └── test │ │ └── java │ │ └── com │ │ └── example │ │ └── SpringCloudEurekaApplicationTests.java │ ├── spring-cloud-gateway │ ├── .gitignore │ ├── .mvn │ │ └── wrapper │ │ │ ├── maven-wrapper.jar │ │ │ └── maven-wrapper.properties │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── example │ │ │ │ └── SpringCloudGatewayApplication.java │ │ └── resources │ │ │ └── bootstrap.yml │ │ └── test │ │ └── java │ │ └── com │ │ └── example │ │ └── SpringCloudGatewayApplicationTests.java │ └── spring-config-external │ ├── microservice1 │ ├── .gitignore │ ├── .mvn │ │ └── wrapper │ │ │ ├── maven-wrapper.jar │ │ │ └── maven-wrapper.properties │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── example │ │ │ │ └── App.java │ │ └── resources │ │ │ └── bootstrap.yml │ │ └── test │ │ └── java │ │ └── com │ │ └── example │ │ └── Microservice1ApplicationTests.java │ └── spring-cloud-config │ ├── .gitignore │ ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── example │ │ │ └── App.java │ └── resources │ │ └── bootstrap.yml │ └── test │ └── java │ └── com │ └── example │ └── AppTests.java ├── 078. Utiliza Apache Kafka con tu aplicación Spring Boot └── spring-kafka-producer │ ├── .gitignore │ ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties │ ├── README.md │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── example │ │ │ ├── Controller.java │ │ │ ├── Producer.java │ │ │ └── SpringKafkaProducerApplication.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── com │ └── example │ └── SpringKafkaProducerApplicationTests.java ├── 079. Spring Batch └── spring-batch │ ├── .gitignore │ ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties │ ├── README.md │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── example │ │ │ ├── App.java │ │ │ ├── config │ │ │ └── BatchConfig.java │ │ │ ├── model │ │ │ └── Customer.java │ │ │ └── processor │ │ │ └── CustomerProcessor.java │ └── resources │ │ ├── application.properties │ │ ├── customers.csv │ │ └── schema.sql │ └── test │ └── java │ └── com │ └── example │ └── SpringBatchApplicationTests.java ├── 080. Consultas usando QueryDSL con Spring Data JPA └── spring-data-jpa-querydsl │ ├── .gitignore │ ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties │ ├── README.md │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── example │ │ │ ├── App.java │ │ │ ├── model │ │ │ ├── Address.java │ │ │ ├── Author.java │ │ │ └── Book.java │ │ │ └── repository │ │ │ ├── AddressRepository.java │ │ │ ├── AuthorRepository.java │ │ │ └── BookRepository.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── com │ └── example │ └── AppTests.java ├── 081. Crea un filtro para tu API REST con Spring Boot └── spring-data-jpa-rest-querydsl │ ├── .gitignore │ ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties │ ├── README.md │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── example │ │ │ ├── App.java │ │ │ ├── controller │ │ │ └── AuthorController.java │ │ │ ├── model │ │ │ ├── Author.java │ │ │ └── Book.java │ │ │ └── repository │ │ │ ├── AuthorRepository.java │ │ │ └── BookRepository.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── com │ └── example │ └── AppTests.java ├── 082. Configura varios orígenes de datos diferentes para tu proyecto con Spring Data JPA └── spring-data-jpa-datasource-multiple │ ├── .gitignore │ ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties │ ├── README.md │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── example │ │ │ ├── App.java │ │ │ ├── config │ │ │ ├── DataSource1Config.java │ │ │ └── DataSource2Config.java │ │ │ ├── datasource1 │ │ │ ├── model │ │ │ │ └── Employee.java │ │ │ └── repository │ │ │ │ └── EmployeeRepository.java │ │ │ └── datasource2 │ │ │ ├── model │ │ │ └── Customer.java │ │ │ └── repository │ │ │ └── CustomerRepository.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── com │ └── example │ └── AppTests.java ├── 083. Utiliza Redis como Message Broker para tus microservicios con Spring Boot └── spring-redis-messaging │ ├── README.md │ ├── publisher │ ├── .gitignore │ ├── .mvn │ │ └── wrapper │ │ │ ├── maven-wrapper.jar │ │ │ └── maven-wrapper.properties │ ├── docker-compose.yml │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── example │ │ │ │ ├── PublisherApp.java │ │ │ │ ├── config │ │ │ │ └── RedisConfig.java │ │ │ │ ├── controller │ │ │ │ └── HelloController.java │ │ │ │ └── messaging │ │ │ │ └── Publisher.java │ │ └── resources │ │ │ └── application.properties │ │ └── test │ │ └── java │ │ └── com │ │ └── example │ │ └── PublisherAppTests.java │ └── subscriber │ ├── .gitignore │ ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── example │ │ │ ├── SubscriberApp.java │ │ │ ├── config │ │ │ └── RedisConfig.java │ │ │ └── messaging │ │ │ └── Subscriber.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── com │ └── example │ └── SubscriberAppTests.java ├── 084. Cómo implementar el versionado de tu API REST con Spring Boot └── spring-rest-versioning │ ├── .gitignore │ ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties │ ├── README.md │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── example │ │ │ ├── App.java │ │ │ ├── controller │ │ │ ├── CompanyController.java │ │ │ ├── CustomerController.java │ │ │ ├── EmployeeController.java │ │ │ └── VehicleController.java │ │ │ └── model │ │ │ ├── Company.java │ │ │ ├── Customer.java │ │ │ ├── Employee.java │ │ │ └── Vehicle.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── com │ └── example │ └── AppTests.java ├── 085. Cómo filtrar la salida de tu API REST según el rol de usuario de Spring Security └── spring-security-jsonview │ ├── .gitignore │ ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties │ ├── README.md │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── example │ │ │ ├── App.java │ │ │ ├── config │ │ │ └── SecurityConfig.java │ │ │ ├── controller │ │ │ ├── CustomerController.java │ │ │ └── SecurityAdvice.java │ │ │ ├── model │ │ │ ├── Customer.java │ │ │ ├── CustomerView.java │ │ │ └── Role.java │ │ │ └── repository │ │ │ └── CustomerRepository.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── com │ └── example │ └── AppTests.java ├── 086. Implementa la seguridad de tu API REST con Spring Security y LDAP └── spring-security-ldap │ ├── .gitignore │ ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties │ ├── README.md │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── example │ │ │ ├── SpringSecurityLdapApplication.java │ │ │ ├── config │ │ │ └── SecurityConfig.java │ │ │ └── controller │ │ │ └── HelloController.java │ └── resources │ │ ├── application.properties │ │ └── users.ldif │ └── test │ └── java │ └── com │ └── example │ └── SpringSecurityLdapApplicationTests.java ├── 087. Implementa una API Reactiva con Spring WebFlux y R2DBC └── spring-webflux-r2dbc │ ├── .gitignore │ ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties │ ├── README.md │ ├── docker-compose.yml │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── example │ │ │ ├── App.java │ │ │ ├── controller │ │ │ └── VehicleController.java │ │ │ ├── model │ │ │ └── Vehicle.java │ │ │ ├── repository │ │ │ └── VehicleRepository.java │ │ │ └── service │ │ │ ├── VehicleService.java │ │ │ └── VehicleServiceImpl.java │ └── resources │ │ ├── application.properties │ │ └── schema.sql │ └── test │ └── java │ └── com │ └── example │ └── AppTests.java ├── 088. Implementa una API Reactiva con Spring WebFlux y R2DBC con Kotlin └── spring-webflux-r2dbc-kotlin │ ├── .gitignore │ ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties │ ├── README.md │ ├── docker-compose.yml │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ ├── main │ ├── kotlin │ │ └── com │ │ │ └── example │ │ │ ├── App.kt │ │ │ ├── config │ │ │ └── DataLoader.kt │ │ │ ├── controller │ │ │ └── BookController.kt │ │ │ ├── domain │ │ │ └── Book.kt │ │ │ ├── repository │ │ │ └── BookRepository.kt │ │ │ └── service │ │ │ ├── BookHandler.kt │ │ │ ├── BookService.kt │ │ │ └── BookServiceImpl.kt │ └── resources │ │ └── application.properties │ └── test │ └── kotlin │ └── com │ └── example │ └── AppTests.kt ├── 089. Implementa una API Reactiva con Spring WebFlux y MongoDB └── spring-webflux-mongo-reactive │ ├── .gitignore │ ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties │ ├── README.md │ ├── docker-compose.yml │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── example │ │ │ ├── App.java │ │ │ ├── controller │ │ │ └── VehicleController.java │ │ │ ├── model │ │ │ └── Vehicle.java │ │ │ ├── repository │ │ │ └── VehicleRepository.java │ │ │ └── service │ │ │ ├── VehicleService.java │ │ │ └── VehicleServiceImpl.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── com │ └── example │ └── AppTests.java ├── 090. Implementa una API Reactiva con Spring WebFlux y MongoDB con Kotlin └── spring-webflux-mongo-reactive-kotlin │ ├── .gitignore │ ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties │ ├── README.md │ ├── docker-compose.yml │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ ├── main │ ├── kotlin │ │ └── com │ │ │ └── example │ │ │ ├── App.kt │ │ │ ├── config │ │ │ └── DataLoader.kt │ │ │ ├── controller │ │ │ └── BookController.kt │ │ │ ├── model │ │ │ └── Book.kt │ │ │ ├── repository │ │ │ └── BookRepository.kt │ │ │ └── service │ │ │ ├── BookHandler.kt │ │ │ ├── BookService.kt │ │ │ └── BookServiceImpl.kt │ └── resources │ │ └── application.properties │ └── test │ └── kotlin │ └── com │ └── example │ └── AppTests.kt ├── 091. Implementa una aplicación de chat en tiempo real con Spring Boot y WebSocket └── spring-websockets-chat │ ├── .gitignore │ ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties │ ├── README.md │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── example │ │ │ ├── App.java │ │ │ ├── config │ │ │ └── WebSocketConfig.java │ │ │ ├── dto │ │ │ ├── ChatMessage.java │ │ │ └── JoinMessage.java │ │ │ ├── endpoint │ │ │ └── ChatEndpoint.java │ │ │ └── listener │ │ │ └── ConnectListener.java │ └── resources │ │ ├── application.properties │ │ └── static │ │ ├── app.js │ │ ├── index.html │ │ └── main.css │ └── test │ └── java │ └── com │ └── example │ └── AppTests.java ├── 092. Implementa una API REST segura con Spring Boot y Keycloak └── spring-security-keycloak │ ├── .gitignore │ ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties │ ├── README.md │ ├── docker-compose.yml │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── example │ │ │ ├── App.java │ │ │ ├── config │ │ │ ├── KeycloakConfig.java │ │ │ └── SecurityConfig.java │ │ │ └── controller │ │ │ └── HelloController.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── com │ └── example │ └── SpringSecurityKeycloakApplicationTests.java ├── 093. Implementa la seguridad de tu API REST con Spring Boot, OAuth2 y Keycloak └── spring-security-oauth-keycloak │ ├── .gitignore │ ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties │ ├── README.md │ ├── docker-compose.yml │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── example │ │ │ ├── SpringSecurityOauthKeycloakApplication.java │ │ │ ├── config │ │ │ └── SecurityConfig.java │ │ │ └── controller │ │ │ └── HelloController.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── com │ └── example │ └── SpringSecurityOauthKeycloakApplicationTests.java ├── 094. Implementa la seguridad de tu API REST con Spring Boot, OAuth2 y Okta └── spring-oauth-okta │ ├── .gitignore │ ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties │ ├── README.md │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── example │ │ │ ├── SpringOauthOktaApplication.java │ │ │ ├── config │ │ │ └── SecurityConfig.java │ │ │ └── controller │ │ │ └── HelloController.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── com │ └── example │ └── SpringOauthOktaApplicationTests.java ├── 095. Utiliza SpEL para manejar la seguridad a nivel de método de tu API REST con Spring Boot └── spring-security-spel │ ├── .gitignore │ ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties │ ├── README.md │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── example │ │ │ ├── App.java │ │ │ ├── config │ │ │ ├── SecurityConfig.java │ │ │ └── TaskPermEvaluator.java │ │ │ ├── controller │ │ │ └── TaskController.java │ │ │ ├── model │ │ │ └── Task.java │ │ │ ├── repository │ │ │ └── TaskRepository.java │ │ │ └── service │ │ │ └── TaskService.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── com │ └── example │ └── AppTests.java ├── 096. Autenticación X.509 con Spring Security └── spring-mtls │ ├── README.md │ ├── server1 │ ├── .gitignore │ ├── .mvn │ │ └── wrapper │ │ │ ├── maven-wrapper.jar │ │ │ └── maven-wrapper.properties │ ├── README.md │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ ├── s2_cert.cer │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── example │ │ │ │ ├── Server1Application.java │ │ │ │ └── Server2Client.java │ │ └── resources │ │ │ ├── application.properties │ │ │ ├── s1_ks.p12 │ │ │ └── s1_ts.p12 │ │ └── test │ │ └── java │ │ └── com │ │ └── example │ │ └── Server1ApplicationTests.java │ └── server2 │ ├── .gitignore │ ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ ├── s1_cert.cer │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── example │ │ │ ├── HelloController.java │ │ │ └── Server2Application.java │ └── resources │ │ ├── application.properties │ │ ├── s2_ks.p12 │ │ └── s2_ts.p12 │ └── test │ └── java │ └── com │ └── example │ └── Server2ApplicationTests.java ├── 097. Ejecuta tu aplicación Spring Boot con imágenes nativas de GraalVM └── spring-native │ ├── .gitignore │ ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties │ ├── Dockerfile │ ├── README.md │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── example │ │ │ └── SpringNativeApplication.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── com │ └── example │ └── SpringNativeApplicationTests.java ├── 098. Despliega tus microservicios con Spring Cloud Azure └── spring-cloud-azure │ ├── README.md │ ├── app1 │ ├── .gitignore │ ├── .mvn │ │ └── wrapper │ │ │ ├── maven-wrapper.jar │ │ │ └── maven-wrapper.properties │ ├── README.md │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── example │ │ │ │ ├── App1Application.java │ │ │ │ └── HelloController.java │ │ └── resources │ │ │ └── application.properties │ │ └── test │ │ └── java │ │ └── com │ │ └── example │ │ └── App1ApplicationTests.java │ └── app2 │ ├── .gitignore │ ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── example │ │ │ ├── App2Application.java │ │ │ └── HelloController.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── com │ └── example │ └── App2ApplicationTests.java ├── 099. Despliega tus microservicios con Spring Cloud Kubernetes └── spring-cloud-kubernetes │ └── app1 │ ├── .gitignore │ ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties │ ├── Dockerfile │ ├── README.md │ ├── deployment-config.yaml │ ├── deployment.yaml │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── example │ │ │ ├── App1Application.java │ │ │ ├── ClientConfig.java │ │ │ └── HelloController.java │ └── resources │ │ └── application.yml │ └── test │ └── java │ └── com │ └── example │ └── App1ApplicationTests.java ├── 100. Spring Cloud Stream └── spring-cloud-stream-processor │ ├── .gitignore │ ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties │ ├── README.md │ ├── docker-compose.yml │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── example │ │ │ ├── SpringCloudStreamProcessorApplication.java │ │ │ ├── config │ │ │ └── StreamConfig.java │ │ │ └── model │ │ │ └── WordCount.java │ └── resources │ │ └── application.yml │ └── test │ └── java │ └── com │ └── example │ └── SpringCloudStreamProcessorApplicationTests.java ├── 101. Spring Cloud Data Flow └── batchsamples │ ├── .mvn │ └── wrapper │ │ ├── MavenWrapperDownloader.java │ │ └── maven-wrapper.properties │ ├── README.md │ ├── billrun │ ├── .mvn │ │ └── wrapper │ │ │ ├── MavenWrapperDownloader.java │ │ │ └── maven-wrapper.properties │ ├── billrun.iml │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── io │ │ │ │ └── spring │ │ │ │ └── billrun │ │ │ │ ├── BillrunApplication.java │ │ │ │ ├── configuration │ │ │ │ ├── BillProcessor.java │ │ │ │ └── BillingConfiguration.java │ │ │ │ └── model │ │ │ │ ├── Bill.java │ │ │ │ └── Usage.java │ │ └── resources │ │ │ ├── application.properties │ │ │ ├── schema.sql │ │ │ └── usageinfo.json │ │ └── test │ │ └── java │ │ └── io │ │ └── spring │ │ └── billrun │ │ └── BillRunApplicationTests.java │ ├── billsetuptask │ ├── .mvn │ │ └── wrapper │ │ │ ├── MavenWrapperDownloader.java │ │ │ └── maven-wrapper.properties │ ├── README.md │ ├── billsetuptask.iml │ ├── docker-compose.yml │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── io │ │ │ └── spring │ │ │ └── billsetuptask │ │ │ ├── BillsetuptaskApplication.java │ │ │ └── configuration │ │ │ └── TaskConfiguration.java │ │ └── resources │ │ └── application.properties │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── spring-cloud-task-edu-samples.iml ├── 102. Spring Cloud Function └── spring-cloud-function │ ├── .gitignore │ ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties │ ├── README.md │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── example │ │ │ ├── Functions.java │ │ │ ├── HelloDTO.java │ │ │ └── SpringCloudFunctionApplication.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── com │ └── example │ └── SpringCloudFunctionApplicationTests.java ├── 103. Ecommerce ├── ecommerce │ ├── .gitignore │ ├── .mvn │ │ └── wrapper │ │ │ ├── maven-wrapper.jar │ │ │ └── maven-wrapper.properties │ ├── README.md │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ ├── src │ │ ├── main │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── example │ │ │ │ │ ├── App.java │ │ │ │ │ ├── config │ │ │ │ │ └── SecurityConfig.java │ │ │ │ │ ├── controller │ │ │ │ │ ├── FileController.java │ │ │ │ │ ├── IndexController.java │ │ │ │ │ ├── OrderController.java │ │ │ │ │ ├── ProductController.java │ │ │ │ │ └── ShopCartController.java │ │ │ │ │ ├── exception │ │ │ │ │ └── StorageException.java │ │ │ │ │ ├── model │ │ │ │ │ ├── Order.java │ │ │ │ │ ├── Product.java │ │ │ │ │ ├── UserAuthority.java │ │ │ │ │ └── UserEntity.java │ │ │ │ │ ├── repository │ │ │ │ │ ├── OrderRepository.java │ │ │ │ │ ├── ProductRepository.java │ │ │ │ │ └── UserEntityRepository.java │ │ │ │ │ └── service │ │ │ │ │ ├── StorageService.java │ │ │ │ │ └── UserDetailsServiceImpl.java │ │ │ └── resources │ │ │ │ ├── application.properties │ │ │ │ └── templates │ │ │ │ ├── fragments.html │ │ │ │ ├── order_detail.html │ │ │ │ ├── order_list.html │ │ │ │ ├── product_form.html │ │ │ │ ├── product_list.html │ │ │ │ └── shopcart.html │ │ └── test │ │ │ └── java │ │ │ └── com │ │ │ └── example │ │ │ └── AppTests.java │ └── uploads │ │ ├── 1671734489664_bookstore.png │ │ ├── 1671734614359_bookstore.png │ │ └── 1671734684304_bookstore.png └── spring-c09-web-flights │ ├── .gitignore │ ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties │ ├── README.md │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── example │ │ │ ├── App.java │ │ │ ├── config │ │ │ └── SecurityConfig.java │ │ │ ├── controllers │ │ │ ├── FileController.java │ │ │ ├── FlightController.java │ │ │ └── TicketController.java │ │ │ ├── entities │ │ │ ├── Flight.java │ │ │ ├── Passenger.java │ │ │ └── Ticket.java │ │ │ ├── exceptions │ │ │ ├── InsufficientBalanceException.java │ │ │ └── TicketAlreadyPurchasedException.java │ │ │ ├── repositories │ │ │ ├── FlightRepository.java │ │ │ ├── PassengerRepository.java │ │ │ └── TicketRepository.java │ │ │ └── services │ │ │ ├── FileService.java │ │ │ ├── FileServiceImpl.java │ │ │ ├── FlightService.java │ │ │ ├── FlightServiceImpl.java │ │ │ ├── PassengerService.java │ │ │ ├── PassengerServiceImpl.java │ │ │ ├── TicketService.java │ │ │ └── TicketServiceImpl.java │ └── resources │ │ ├── application.properties │ │ ├── static │ │ └── css │ │ │ └── styles.css │ │ └── templates │ │ ├── flight │ │ ├── flight-detail.html │ │ ├── flight-form.html │ │ └── flight-list.html │ │ ├── navbar.html │ │ └── ticket │ │ ├── ticket-detail.html │ │ ├── ticket-form.html │ │ └── ticket-list.html │ └── test │ └── java │ └── com │ └── example │ ├── controllers │ ├── FlightControllerTest.java │ └── TicketControllerTest.java │ └── repositories │ └── FlightRepositoryTest.java └── README.md /001. Introducción a Spring Framework/spring-intro/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/001. Introducción a Spring Framework/spring-intro/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /001. Introducción a Spring Framework/spring-intro/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar 3 | -------------------------------------------------------------------------------- /001. Introducción a Spring Framework/spring-intro/README.md: -------------------------------------------------------------------------------- 1 | # Spring: introducción al framework Spring 2 | 3 | Introducción a la inyección de dependencias en Spring: 4 | 5 | * Inyección de dependencias 6 | * @Bean 7 | * @ImportResource 8 | * @Configuration 9 | * @ComponentScan 10 | * @Service 11 | * @Primary -------------------------------------------------------------------------------- /001. Introducción a Spring Framework/spring-intro/src/main/java/com/example/primary/CustomerService.java: -------------------------------------------------------------------------------- 1 | package com.example.primary; 2 | 3 | public interface CustomerService { 4 | String hello(); 5 | } 6 | -------------------------------------------------------------------------------- /001. Introducción a Spring Framework/spring-intro/src/main/java/com/example/service/EmployeeService.java: -------------------------------------------------------------------------------- 1 | package com.example.service; 2 | 3 | import org.springframework.stereotype.Component; 4 | 5 | 6 | public interface EmployeeService { 7 | String hello(); 8 | } 9 | -------------------------------------------------------------------------------- /001. Introducción a Spring Framework/spring-intro/src/main/java/com/example2/HelloService.java: -------------------------------------------------------------------------------- 1 | package com.example2; 2 | 3 | import org.springframework.stereotype.Service; 4 | 5 | @Service 6 | public class HelloService { 7 | } 8 | -------------------------------------------------------------------------------- /001. Introducción a Spring Framework/spring-intro/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /001. Introducción a Spring Framework/spring-intro/src/test/java/com/example/AppTests.java: -------------------------------------------------------------------------------- 1 | package com.example; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class AppTests { 8 | 9 | @Test 10 | void contextLoads() { 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /002. Tu primera aplicación web con Spring Boot/spring-web-mvc/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/002. Tu primera aplicación web con Spring Boot/spring-web-mvc/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /002. Tu primera aplicación web con Spring Boot/spring-web-mvc/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar 3 | -------------------------------------------------------------------------------- /002. Tu primera aplicación web con Spring Boot/spring-web-mvc/README.md: -------------------------------------------------------------------------------- 1 | # Spring: Aplicación web con Spring MVC y Thymeleaf 2 | 3 | Ejemplo introductorio de aplicación web con Spring MVC y Thymeleaf. -------------------------------------------------------------------------------- /002. Tu primera aplicación web con Spring Boot/spring-web-mvc/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /002. Tu primera aplicación web con Spring Boot/spring-web-mvc/src/main/resources/templates/product-form.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Title 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /002. Tu primera aplicación web con Spring Boot/spring-web-mvc/src/main/resources/templates/product-view.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Title 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /002. Tu primera aplicación web con Spring Boot/spring-web-mvc/src/test/java/com/example/AppTests.java: -------------------------------------------------------------------------------- 1 | package com.example; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class AppTests { 8 | 9 | @Test 10 | void contextLoads() { 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /003. Introducción a Spring Data JPA/spring-data-jpa/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/003. Introducción a Spring Data JPA/spring-data-jpa/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /003. Introducción a Spring Data JPA/spring-data-jpa/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar 3 | -------------------------------------------------------------------------------- /003. Introducción a Spring Data JPA/spring-data-jpa/README.md: -------------------------------------------------------------------------------- 1 | # Spring: introducción a Spring Data JPA 2 | 3 | * Entidades 4 | * Repositorios -------------------------------------------------------------------------------- /003. Introducción a Spring Data JPA/spring-data-jpa/src/test/java/com/example/AppTests.java: -------------------------------------------------------------------------------- 1 | package com.example; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class AppTests { 8 | 9 | @Test 10 | void contextLoads() { 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /004. Tu primera API Rest con Spring Boot/spring-rest/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/004. Tu primera API Rest con Spring Boot/spring-rest/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /004. Tu primera API Rest con Spring Boot/spring-rest/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar 3 | -------------------------------------------------------------------------------- /004. Tu primera API Rest con Spring Boot/spring-rest/README.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | # Spring: API REST 4 | 5 | * Controladores REST -------------------------------------------------------------------------------- /004. Tu primera API Rest con Spring Boot/spring-rest/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /004. Tu primera API Rest con Spring Boot/spring-rest/src/test/java/com/example/AppTests.java: -------------------------------------------------------------------------------- 1 | package com.example; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class AppTests { 8 | 9 | @Test 10 | void contextLoads() { 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /005. Introducción a Spring Security/spring-security/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/005. Introducción a Spring Security/spring-security/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /005. Introducción a Spring Security/spring-security/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar 3 | -------------------------------------------------------------------------------- /005. Introducción a Spring Security/spring-security/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Spring Security 3 | 4 | * Introducción a la seguridad con Spring Security y Spring Boot -------------------------------------------------------------------------------- /005. Introducción a Spring Security/spring-security/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | #spring.security.user.name=postman 2 | #spring.security.user.password=postman 3 | -------------------------------------------------------------------------------- /005. Introducción a Spring Security/spring-security/src/test/java/com/example/AppTests.java: -------------------------------------------------------------------------------- 1 | package com.example; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class AppTests { 8 | 9 | @Test 10 | void contextLoads() { 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /006. Implementa la gestión de errores en tu aplicación web con Spring Boot/spring-web-gestion-errores/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/006. Implementa la gestión de errores en tu aplicación web con Spring Boot/spring-web-gestion-errores/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /006. Implementa la gestión de errores en tu aplicación web con Spring Boot/spring-web-gestion-errores/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar 3 | -------------------------------------------------------------------------------- /006. Implementa la gestión de errores en tu aplicación web con Spring Boot/spring-web-gestion-errores/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Spring: Validación MVC 3 | 4 | * Validación con spring-boot-starter-validation en controladores MVC -------------------------------------------------------------------------------- /006. Implementa la gestión de errores en tu aplicación web con Spring Boot/spring-web-gestion-errores/src/main/java/com/example/ProductService.java: -------------------------------------------------------------------------------- 1 | package com.example; 2 | 3 | public interface ProductService { 4 | 5 | 6 | Product findById(Long id); 7 | Product save(Product product); 8 | Product delete(Product product); 9 | } 10 | -------------------------------------------------------------------------------- /006. Implementa la gestión de errores en tu aplicación web con Spring Boot/spring-web-gestion-errores/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /006. Implementa la gestión de errores en tu aplicación web con Spring Boot/spring-web-gestion-errores/src/main/resources/templates/product-error.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Title 6 | 7 | 8 | 9 |

Error!

10 | 11 |

12 | 13 | -------------------------------------------------------------------------------- /006. Implementa la gestión de errores en tu aplicación web con Spring Boot/spring-web-gestion-errores/src/main/resources/templates/product-info.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Title 6 | 7 | 8 | 9 |

Product info page!

10 | 11 | -------------------------------------------------------------------------------- /007. Validación de datos en tu aplicación web con Spring Boot/spring-rest-validation/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/007. Validación de datos en tu aplicación web con Spring Boot/spring-rest-validation/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /007. Validación de datos en tu aplicación web con Spring Boot/spring-rest-validation/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar 3 | -------------------------------------------------------------------------------- /007. Validación de datos en tu aplicación web con Spring Boot/spring-rest-validation/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Spring: Validación REST 3 | 4 | * Validación con spring-boot-starter-validation en controladores REST -------------------------------------------------------------------------------- /007. Validación de datos en tu aplicación web con Spring Boot/spring-rest-validation/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /008. Paginación de resultados en tu aplicación web con Spring Boot/spring-pagination-thymeleaf/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/008. Paginación de resultados en tu aplicación web con Spring Boot/spring-pagination-thymeleaf/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /008. Paginación de resultados en tu aplicación web con Spring Boot/spring-pagination-thymeleaf/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar 3 | -------------------------------------------------------------------------------- /008. Paginación de resultados en tu aplicación web con Spring Boot/spring-pagination-thymeleaf/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Spring: Paginación de resultados (MVC) 3 | 4 | * Paginación con Pageable en aplicación MVC -------------------------------------------------------------------------------- /008. Paginación de resultados en tu aplicación web con Spring Boot/spring-pagination-thymeleaf/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /009. Paginación de resultados en tu API REST con Spring Boot/spring-pagination-rest/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/009. Paginación de resultados en tu API REST con Spring Boot/spring-pagination-rest/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /009. Paginación de resultados en tu API REST con Spring Boot/spring-pagination-rest/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar 3 | -------------------------------------------------------------------------------- /009. Paginación de resultados en tu API REST con Spring Boot/spring-pagination-rest/README.md: -------------------------------------------------------------------------------- 1 | # Spring: Paginación de resultados (REST) 2 | 3 | * Paginación con Pageable en aplicación REST -------------------------------------------------------------------------------- /009. Paginación de resultados en tu API REST con Spring Boot/spring-pagination-rest/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /010. Documenta tu API REST con Open API 3.0/spring-rest-openapi/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/010. Documenta tu API REST con Open API 3.0/spring-rest-openapi/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /010. Documenta tu API REST con Open API 3.0/spring-rest-openapi/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar 3 | -------------------------------------------------------------------------------- /010. Documenta tu API REST con Open API 3.0/spring-rest-openapi/README.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | # Documentación API REST Spring con OpenAPI 4 | 5 | * Documentación API REST con springdoc-openapi-ui -------------------------------------------------------------------------------- /010. Documenta tu API REST con Open API 3.0/spring-rest-openapi/src/main/java/com/example/controller/HelloController.java: -------------------------------------------------------------------------------- 1 | package com.example.controller; 2 | 3 | import io.swagger.v3.oas.annotations.Hidden; 4 | import org.springframework.web.bind.annotation.RestController; 5 | 6 | @Hidden 7 | @RestController 8 | public class HelloController { 9 | } 10 | -------------------------------------------------------------------------------- /010. Documenta tu API REST con Open API 3.0/spring-rest-openapi/src/main/resources/application.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/010. Documenta tu API REST con Open API 3.0/spring-rest-openapi/src/main/resources/application.properties -------------------------------------------------------------------------------- /010. Documenta tu API REST con Open API 3.0/spring-rest-openapi/src/test/java/com/example/AppTests.java: -------------------------------------------------------------------------------- 1 | package com.example; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class AppTests { 8 | 9 | @Test 10 | void contextLoads() { 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /011. Testing unitario de tu aplicación con Spring Boot, Junit y Mockito/spring-testing-unitario/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/011. Testing unitario de tu aplicación con Spring Boot, Junit y Mockito/spring-testing-unitario/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /011. Testing unitario de tu aplicación con Spring Boot, Junit y Mockito/spring-testing-unitario/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar 3 | -------------------------------------------------------------------------------- /011. Testing unitario de tu aplicación con Spring Boot, Junit y Mockito/spring-testing-unitario/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Spring: Testing unitario 3 | 4 | Testing unitario con spring-boot-starter-test 5 | 6 | * JUnit 5 7 | * Mockito -------------------------------------------------------------------------------- /011. Testing unitario de tu aplicación con Spring Boot, Junit y Mockito/spring-testing-unitario/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /012. Consultas básicas con Spring Data JPA/spring-data-jpa-consultas/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/012. Consultas básicas con Spring Data JPA/spring-data-jpa-consultas/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /012. Consultas básicas con Spring Data JPA/spring-data-jpa-consultas/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar 3 | -------------------------------------------------------------------------------- /012. Consultas básicas con Spring Data JPA/spring-data-jpa-consultas/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Spring Data JPA: Consultas 3 | 4 | * @Transactional 5 | * @Modifying 6 | * @Query -------------------------------------------------------------------------------- /012. Consultas básicas con Spring Data JPA/spring-data-jpa-consultas/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /012. Consultas básicas con Spring Data JPA/spring-data-jpa-consultas/src/test/java/com/example/AppTests.java: -------------------------------------------------------------------------------- 1 | package com.example; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class AppTests { 8 | 9 | @Test 10 | void contextLoads() { 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /013. Modelos de datos con asociaciones con Spring Data JPA/spring-data-jpa-asociaciones/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/013. Modelos de datos con asociaciones con Spring Data JPA/spring-data-jpa-asociaciones/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /013. Modelos de datos con asociaciones con Spring Data JPA/spring-data-jpa-asociaciones/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar 3 | -------------------------------------------------------------------------------- /013. Modelos de datos con asociaciones con Spring Data JPA/spring-data-jpa-asociaciones/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Spring Data JPA: Asociaciones entre entidades: 3 | 4 | * @OneToOne 5 | * @OneToMany 6 | * @ManyToOne 7 | * @ManyToMany 8 | 9 | -------------------------------------------------------------------------------- /013. Modelos de datos con asociaciones con Spring Data JPA/spring-data-jpa-asociaciones/src/main/java/com/example/model/EmployeeType.java: -------------------------------------------------------------------------------- 1 | package com.example.model; 2 | 3 | public enum EmployeeType { 4 | JUNIOR, SENIOR, C_LEVEL 5 | } 6 | -------------------------------------------------------------------------------- /014. Crea un CRUD con Spring Boot, Spring Data JPA y Thymeleaf/spring-crud-thymeleaf/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/014. Crea un CRUD con Spring Boot, Spring Data JPA y Thymeleaf/spring-crud-thymeleaf/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /014. Crea un CRUD con Spring Boot, Spring Data JPA y Thymeleaf/spring-crud-thymeleaf/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar 3 | -------------------------------------------------------------------------------- /014. Crea un CRUD con Spring Boot, Spring Data JPA y Thymeleaf/spring-crud-thymeleaf/README.md: -------------------------------------------------------------------------------- 1 | 2 | # CRUD: Spring MVC + Thymeleaf 3 | 4 | Operaciones Create Read Update Detele (CRUD) con controladores MVC y Thymeleaf en Spring Boot. -------------------------------------------------------------------------------- /014. Crea un CRUD con Spring Boot, Spring Data JPA y Thymeleaf/spring-crud-thymeleaf/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /015. Introducción a Spring Data Redis/spring-data-redis/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/015. Introducción a Spring Data Redis/spring-data-redis/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /015. Introducción a Spring Data Redis/spring-data-redis/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar 3 | -------------------------------------------------------------------------------- /015. Introducción a Spring Data Redis/spring-data-redis/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Spring Data Redis 3 | 4 | Creación y guardado de entidades en Redis con spring-boot-starter-data-redis -------------------------------------------------------------------------------- /015. Introducción a Spring Data Redis/spring-data-redis/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '3.2' 2 | 3 | services: 4 | 5 | redis: 6 | image: "redis:alpine" 7 | container_name: redis 8 | command: redis-server --requirepass ${REDIS_PASS:-password123} 9 | ports: 10 | - "6379:6379" -------------------------------------------------------------------------------- /015. Introducción a Spring Data Redis/spring-data-redis/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.redis.port=6379 2 | spring.redis.host=localhost 3 | spring.redis.database=1 4 | spring.redis.password=password123 5 | #spring.redis.username=redis -------------------------------------------------------------------------------- /015. Introducción a Spring Data Redis/spring-data-redis/src/test/java/com/example/AppTests.java: -------------------------------------------------------------------------------- 1 | package com.example; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class AppTests { 8 | 9 | @Test 10 | void contextLoads() { 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /016. Introducción a Spring Data MongoDB/spring-data-mongodb/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/016. Introducción a Spring Data MongoDB/spring-data-mongodb/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /016. Introducción a Spring Data MongoDB/spring-data-mongodb/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar 3 | -------------------------------------------------------------------------------- /016. Introducción a Spring Data MongoDB/spring-data-mongodb/README.md: -------------------------------------------------------------------------------- 1 | # Spring Data MongoDB 2 | 3 | Creación y guardado de entidades en MongoDB con spring-boot-starter-data-mongodb -------------------------------------------------------------------------------- /016. Introducción a Spring Data MongoDB/spring-data-mongodb/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '3' 2 | services: 3 | mongodb: 4 | image: mongo:5.0 5 | container_name: "mongodb" 6 | ports: 7 | - "27017:27017" -------------------------------------------------------------------------------- /016. Introducción a Spring Data MongoDB/spring-data-mongodb/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.data.mongodb.host=localhost 2 | spring.data.mongodb.port=27017 3 | spring.data.mongodb.database=spring_mongodb 4 | -------------------------------------------------------------------------------- /016. Introducción a Spring Data MongoDB/spring-data-mongodb/src/test/java/com/example/AppTests.java: -------------------------------------------------------------------------------- 1 | package com.example; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class AppTests { 8 | 9 | @Test 10 | void contextLoads() { 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /017. Consultas con Spring Data MongoDB/spring-data-mongodb-consultas/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/017. Consultas con Spring Data MongoDB/spring-data-mongodb-consultas/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /017. Consultas con Spring Data MongoDB/spring-data-mongodb-consultas/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar 3 | -------------------------------------------------------------------------------- /017. Consultas con Spring Data MongoDB/spring-data-mongodb-consultas/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Consultas Spring Data MongoDB 3 | 4 | Consultas en repositorios con spring-boot-starter-data-mongodb -------------------------------------------------------------------------------- /017. Consultas con Spring Data MongoDB/spring-data-mongodb-consultas/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '3' 2 | services: 3 | mongodb: 4 | image: mongo:5.0 5 | container_name: "mongo_spring" 6 | ports: 7 | - "27017:27017" -------------------------------------------------------------------------------- /017. Consultas con Spring Data MongoDB/spring-data-mongodb-consultas/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /017. Consultas con Spring Data MongoDB/spring-data-mongodb-consultas/src/test/java/com/example/AppTests.java: -------------------------------------------------------------------------------- 1 | package com.example; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class AppTests { 8 | 9 | @Test 10 | void contextLoads() { 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /018. Implementa timeout en las peticiones de tu API REST/spring-timeout/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/018. Implementa timeout en las peticiones de tu API REST/spring-timeout/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /018. Implementa timeout en las peticiones de tu API REST/spring-timeout/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar 3 | -------------------------------------------------------------------------------- /018. Implementa timeout en las peticiones de tu API REST/spring-timeout/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Timeout en Spring Boot 3 | 4 | Implementación de timeout en Spring Boot con resilience4j-spring-boot -------------------------------------------------------------------------------- /018. Implementa timeout en las peticiones de tu API REST/spring-timeout/src/main/java/com/example/Employee.java: -------------------------------------------------------------------------------- 1 | package com.example; 2 | 3 | public record Employee(Long id, String name, Double salary) { 4 | } 5 | -------------------------------------------------------------------------------- /018. Implementa timeout en las peticiones de tu API REST/spring-timeout/src/main/resources/application.properties.old: -------------------------------------------------------------------------------- 1 | 2 | #spring.mvc.async.request-timeout=2s -------------------------------------------------------------------------------- /018. Implementa timeout en las peticiones de tu API REST/spring-timeout/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | resilience4j.timelimiter: 2 | configs: 3 | default: 4 | cancelRunningFuture: true 5 | timeoutDuration: 3s 6 | instaces: 7 | findAll1: 8 | baseConfig: default 9 | findAll2: 10 | baseConfig: default -------------------------------------------------------------------------------- /019. Introducción a Spring WebFlux/spring-webflux/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/019. Introducción a Spring WebFlux/spring-webflux/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /019. Introducción a Spring WebFlux/spring-webflux/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar 3 | -------------------------------------------------------------------------------- /019. Introducción a Spring WebFlux/spring-webflux/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Introducción a Spring WebFlux 3 | 4 | * Controladores basados en anotaciones 5 | * Controladores funcionales -------------------------------------------------------------------------------- /019. Introducción a Spring WebFlux/spring-webflux/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /019. Introducción a Spring WebFlux/spring-webflux/src/test/java/com/example/AppTests.java: -------------------------------------------------------------------------------- 1 | package com.example; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class AppTests { 8 | 9 | @Test 10 | void contextLoads() { 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /020. Introducción a Spring WebFlux con Kotlin/spring-webflux-kotlin/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/020. Introducción a Spring WebFlux con Kotlin/spring-webflux-kotlin/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /020. Introducción a Spring WebFlux con Kotlin/spring-webflux-kotlin/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar 3 | -------------------------------------------------------------------------------- /020. Introducción a Spring WebFlux con Kotlin/spring-webflux-kotlin/README.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | # Introducción a Spring WebFlux en Kotlin 4 | 5 | * Controladores funcionales 6 | 7 | Lenguaje de programación: Kotlin. 8 | -------------------------------------------------------------------------------- /020. Introducción a Spring WebFlux con Kotlin/spring-webflux-kotlin/src/main/kotlin/com/example/domain/Book.kt: -------------------------------------------------------------------------------- 1 | package com.example.domain 2 | 3 | data class Book(var id: Long?, var title: String, var author: String) 4 | -------------------------------------------------------------------------------- /020. Introducción a Spring WebFlux con Kotlin/spring-webflux-kotlin/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /021. Crea una aplicación web reactiva con Spring WebFlux y Thymeleaf/spring-webflux-thymeleaf/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/021. Crea una aplicación web reactiva con Spring WebFlux y Thymeleaf/spring-webflux-thymeleaf/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /021. Crea una aplicación web reactiva con Spring WebFlux y Thymeleaf/spring-webflux-thymeleaf/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar 3 | -------------------------------------------------------------------------------- /021. Crea una aplicación web reactiva con Spring WebFlux y Thymeleaf/spring-webflux-thymeleaf/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Spring WebFlux y Thymeleaf 3 | 4 | Controladores MVC reactivos con Spring WebFlux y Thymeleaf: 5 | 6 | * ReactiveDataDriverContextVariable 7 | * RestTemplate 8 | * WebClient -------------------------------------------------------------------------------- /021. Crea una aplicación web reactiva con Spring WebFlux y Thymeleaf/spring-webflux-thymeleaf/src/main/java/com/example/example1/model/Employee.java: -------------------------------------------------------------------------------- 1 | package com.example.example1.model; 2 | 3 | public record Employee(Long id, String name, Double salary) { 4 | } 5 | -------------------------------------------------------------------------------- /021. Crea una aplicación web reactiva con Spring WebFlux y Thymeleaf/spring-webflux-thymeleaf/src/main/java/com/example/example2/model/Book.java: -------------------------------------------------------------------------------- 1 | package com.example.example2.model; 2 | 3 | public record Book(Long id, String title, String author) { 4 | } 5 | -------------------------------------------------------------------------------- /021. Crea una aplicación web reactiva con Spring WebFlux y Thymeleaf/spring-webflux-thymeleaf/src/main/java/com/example/example3/model/Book.java: -------------------------------------------------------------------------------- 1 | package com.example.example3.model; 2 | 3 | public record Book(Long id, String title, String author) { 4 | } 5 | -------------------------------------------------------------------------------- /021. Crea una aplicación web reactiva con Spring WebFlux y Thymeleaf/spring-webflux-thymeleaf/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | #spring.thymeleaf.reactive.max-chunk-size=1024 -------------------------------------------------------------------------------- /022. Spring vs. Spring Boot vs. Spring MVC/spring-vs-springboot-vs-springmvc/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Ecosistema Spring 3 | 4 | * Spring Framework 5 | * Spring Boot 6 | * Spring MVC -------------------------------------------------------------------------------- /022. Spring vs. Spring Boot vs. Spring MVC/spring-vs-springboot-vs-springmvc/src/main/java/com/example/Employee.java: -------------------------------------------------------------------------------- 1 | package com.example; 2 | 3 | public record Employee(Long id, String name) { 4 | } 5 | -------------------------------------------------------------------------------- /022. Spring vs. Spring Boot vs. Spring MVC/spring-vs-springboot-vs-springmvc/src/main/java/com/example/EmployeeService.java: -------------------------------------------------------------------------------- 1 | package com.example; 2 | 3 | import java.util.List; 4 | 5 | public interface EmployeeService { 6 | List findAll(); 7 | } 8 | -------------------------------------------------------------------------------- /023. Introducción a la programación dirigida por eventos con Spring/spring-events/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/023. Introducción a la programación dirigida por eventos con Spring/spring-events/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /023. Introducción a la programación dirigida por eventos con Spring/spring-events/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar 3 | -------------------------------------------------------------------------------- /023. Introducción a la programación dirigida por eventos con Spring/spring-events/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Eventos en Spring 3 | 4 | Creación de eventos en Spring con ``org.springframework.context.ApplicationEvent``. -------------------------------------------------------------------------------- /023. Introducción a la programación dirigida por eventos con Spring/spring-events/src/main/java/com/example/service/EmployeeService.java: -------------------------------------------------------------------------------- 1 | package com.example.service; 2 | 3 | 4 | import com.example.model.Employee; 5 | 6 | public interface EmployeeService { 7 | Employee create(Employee employee); 8 | void deleteById(Long id); 9 | } 10 | -------------------------------------------------------------------------------- /023. Introducción a la programación dirigida por eventos con Spring/spring-events/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /024. Desarrolla una aplicación con Spring Boot y Angular/spring-angular/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Full Stack con Spring + Angular 3 | 4 | * Backend con Spring Boot 5 | * Frontend con Angular -------------------------------------------------------------------------------- /024. Desarrolla una aplicación con Spring Boot y Angular/spring-angular/backend/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/024. Desarrolla una aplicación con Spring Boot y Angular/spring-angular/backend/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /024. Desarrolla una aplicación con Spring Boot y Angular/spring-angular/backend/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar 3 | -------------------------------------------------------------------------------- /024. Desarrolla una aplicación con Spring Boot y Angular/spring-angular/backend/src/main/java/com/example/Book.java: -------------------------------------------------------------------------------- 1 | package com.example; 2 | 3 | public record Book(Long id, String title) { 4 | } 5 | -------------------------------------------------------------------------------- /024. Desarrolla una aplicación con Spring Boot y Angular/spring-angular/backend/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /024. Desarrolla una aplicación con Spring Boot y Angular/spring-angular/frontend/src/app/app.component.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/024. Desarrolla una aplicación con Spring Boot y Angular/spring-angular/frontend/src/app/app.component.css -------------------------------------------------------------------------------- /024. Desarrolla una aplicación con Spring Boot y Angular/spring-angular/frontend/src/app/app.component.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /024. Desarrolla una aplicación con Spring Boot y Angular/spring-angular/frontend/src/app/app.component.ts: -------------------------------------------------------------------------------- 1 | import { Component } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'app-root', 5 | templateUrl: './app.component.html', 6 | styleUrls: ['./app.component.css'] 7 | }) 8 | export class AppComponent { 9 | title = 'frontend'; 10 | } 11 | -------------------------------------------------------------------------------- /024. Desarrolla una aplicación con Spring Boot y Angular/spring-angular/frontend/src/app/book-list/book-list.component.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/024. Desarrolla una aplicación con Spring Boot y Angular/spring-angular/frontend/src/app/book-list/book-list.component.css -------------------------------------------------------------------------------- /024. Desarrolla una aplicación con Spring Boot y Angular/spring-angular/frontend/src/app/book-list/book-list.component.html: -------------------------------------------------------------------------------- 1 |
2 |

Book List

3 | 4 | 9 |
10 | -------------------------------------------------------------------------------- /024. Desarrolla una aplicación con Spring Boot y Angular/spring-angular/frontend/src/app/models/book.ts: -------------------------------------------------------------------------------- 1 | export class Book{ 2 | id?: number; 3 | title?: string; 4 | } 5 | -------------------------------------------------------------------------------- /024. Desarrolla una aplicación con Spring Boot y Angular/spring-angular/frontend/src/assets/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/024. Desarrolla una aplicación con Spring Boot y Angular/spring-angular/frontend/src/assets/.gitkeep -------------------------------------------------------------------------------- /024. Desarrolla una aplicación con Spring Boot y Angular/spring-angular/frontend/src/environments/environment.prod.ts: -------------------------------------------------------------------------------- 1 | export const environment = { 2 | production: true 3 | }; 4 | -------------------------------------------------------------------------------- /024. Desarrolla una aplicación con Spring Boot y Angular/spring-angular/frontend/src/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/024. Desarrolla una aplicación con Spring Boot y Angular/spring-angular/frontend/src/favicon.ico -------------------------------------------------------------------------------- /024. Desarrolla una aplicación con Spring Boot y Angular/spring-angular/frontend/src/styles.css: -------------------------------------------------------------------------------- 1 | /* You can add global styles to this file, and also import other style files */ 2 | -------------------------------------------------------------------------------- /025. Desarrolla una aplicación con Spring Boot y React/spring-react/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Full Stack con Spring + React 3 | 4 | * Backend con Spring Boot 5 | * Frontend con React -------------------------------------------------------------------------------- /025. Desarrolla una aplicación con Spring Boot y React/spring-react/backend/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/025. Desarrolla una aplicación con Spring Boot y React/spring-react/backend/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /025. Desarrolla una aplicación con Spring Boot y React/spring-react/backend/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar 3 | -------------------------------------------------------------------------------- /025. Desarrolla una aplicación con Spring Boot y React/spring-react/backend/src/main/java/com/example/Employee.java: -------------------------------------------------------------------------------- 1 | package com.example; 2 | 3 | public record Employee(Long id, String name, String role) { 4 | } 5 | -------------------------------------------------------------------------------- /025. Desarrolla una aplicación con Spring Boot y React/spring-react/backend/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /025. Desarrolla una aplicación con Spring Boot y React/spring-react/frontend/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/025. Desarrolla una aplicación con Spring Boot y React/spring-react/frontend/public/favicon.ico -------------------------------------------------------------------------------- /025. Desarrolla una aplicación con Spring Boot y React/spring-react/frontend/public/logo192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/025. Desarrolla una aplicación con Spring Boot y React/spring-react/frontend/public/logo192.png -------------------------------------------------------------------------------- /025. Desarrolla una aplicación con Spring Boot y React/spring-react/frontend/public/logo512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/025. Desarrolla una aplicación con Spring Boot y React/spring-react/frontend/public/logo512.png -------------------------------------------------------------------------------- /025. Desarrolla una aplicación con Spring Boot y React/spring-react/frontend/public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /025. Desarrolla una aplicación con Spring Boot y React/spring-react/frontend/src/App.test.js: -------------------------------------------------------------------------------- 1 | import { render, screen } from '@testing-library/react'; 2 | import App from './App'; 3 | 4 | test('renders learn react link', () => { 5 | render(); 6 | const linkElement = screen.getByText(/learn react/i); 7 | expect(linkElement).toBeInTheDocument(); 8 | }); 9 | -------------------------------------------------------------------------------- /025. Desarrolla una aplicación con Spring Boot y React/spring-react/frontend/src/setupTests.js: -------------------------------------------------------------------------------- 1 | // jest-dom adds custom jest matchers for asserting on DOM nodes. 2 | // allows you to do things like: 3 | // expect(element).toHaveTextContent(/react/i) 4 | // learn more: https://github.com/testing-library/jest-dom 5 | import '@testing-library/jest-dom'; 6 | -------------------------------------------------------------------------------- /026. Desarrolla una aplicación con Spring Boot y Vue.js/spring-vue/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Full Stack con Spring + Vue 3 | 4 | * Backend con Spring Boot 5 | * Frontend con Vue -------------------------------------------------------------------------------- /026. Desarrolla una aplicación con Spring Boot y Vue.js/spring-vue/backend/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/026. Desarrolla una aplicación con Spring Boot y Vue.js/spring-vue/backend/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /026. Desarrolla una aplicación con Spring Boot y Vue.js/spring-vue/backend/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar 3 | -------------------------------------------------------------------------------- /026. Desarrolla una aplicación con Spring Boot y Vue.js/spring-vue/backend/src/main/java/com/example/Employee.java: -------------------------------------------------------------------------------- 1 | package com.example; 2 | 3 | public record Employee(Long id, String name, String role) { 4 | } 5 | -------------------------------------------------------------------------------- /026. Desarrolla una aplicación con Spring Boot y Vue.js/spring-vue/backend/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | server.port=8081 2 | -------------------------------------------------------------------------------- /026. Desarrolla una aplicación con Spring Boot y Vue.js/spring-vue/frontend/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: [ 3 | '@vue/cli-plugin-babel/preset' 4 | ] 5 | } 6 | -------------------------------------------------------------------------------- /026. Desarrolla una aplicación con Spring Boot y Vue.js/spring-vue/frontend/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/026. Desarrolla una aplicación con Spring Boot y Vue.js/spring-vue/frontend/public/favicon.ico -------------------------------------------------------------------------------- /026. Desarrolla una aplicación con Spring Boot y Vue.js/spring-vue/frontend/src/assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/026. Desarrolla una aplicación con Spring Boot y Vue.js/spring-vue/frontend/src/assets/logo.png -------------------------------------------------------------------------------- /026. Desarrolla una aplicación con Spring Boot y Vue.js/spring-vue/frontend/src/components/EmployeeDetail.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 10 | 11 | -------------------------------------------------------------------------------- /026. Desarrolla una aplicación con Spring Boot y Vue.js/spring-vue/frontend/src/main.js: -------------------------------------------------------------------------------- 1 | import { createApp } from 'vue' 2 | import 'bootstrap' 3 | import 'bootstrap/dist/css/bootstrap.min.css' 4 | import App from './App.vue' 5 | import router from './router' 6 | 7 | createApp(App).use(router).mount('#app') 8 | -------------------------------------------------------------------------------- /026. Desarrolla una aplicación con Spring Boot y Vue.js/spring-vue/frontend/vue.config.js: -------------------------------------------------------------------------------- 1 | const { defineConfig } = require('@vue/cli-service') 2 | module.exports = defineConfig({ 3 | transpileDependencies: true 4 | }) 5 | -------------------------------------------------------------------------------- /027. Seguridad JWT en tu API Rest con Spring Boot/spring-jwt/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/027. Seguridad JWT en tu API Rest con Spring Boot/spring-jwt/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /027. Seguridad JWT en tu API Rest con Spring Boot/spring-jwt/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar 3 | -------------------------------------------------------------------------------- /027. Seguridad JWT en tu API Rest con Spring Boot/spring-jwt/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Spring Security + JWT 3 | 4 | Seguridad en API REST de Spring con JWT. -------------------------------------------------------------------------------- /027. Seguridad JWT en tu API Rest con Spring Boot/spring-jwt/src/main/java/com/example/dto/LoginRequest.java: -------------------------------------------------------------------------------- 1 | package com.example.dto; 2 | 3 | public record LoginRequest(String username, String password) { 4 | } 5 | 6 | -------------------------------------------------------------------------------- /027. Seguridad JWT en tu API Rest con Spring Boot/spring-jwt/src/main/java/com/example/dto/LoginResponse.java: -------------------------------------------------------------------------------- 1 | package com.example.dto; 2 | 3 | import java.util.List; 4 | 5 | public record LoginResponse(String username, List authorities, String token) { 6 | } 7 | 8 | -------------------------------------------------------------------------------- /027. Seguridad JWT en tu API Rest con Spring Boot/spring-jwt/src/main/java/com/example/model/UserAuthority.java: -------------------------------------------------------------------------------- 1 | package com.example.model; 2 | 3 | public enum UserAuthority { 4 | READ, WRITE 5 | } 6 | -------------------------------------------------------------------------------- /027. Seguridad JWT en tu API Rest con Spring Boot/spring-jwt/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | app.security.jwt.secret=K3lF7QAspsGG09mbIaryP3jtRkkxC5pwTV6BtM4kU5EXYRDEkMM9dUdjlpjPrEWYM 3 | app.security.jwt.expiration=86400 4 | -------------------------------------------------------------------------------- /028. Mejora la internacionalización de tu aplicación web con Spring Boot/spring-i18n/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/028. Mejora la internacionalización de tu aplicación web con Spring Boot/spring-i18n/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /028. Mejora la internacionalización de tu aplicación web con Spring Boot/spring-i18n/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar 3 | -------------------------------------------------------------------------------- /028. Mejora la internacionalización de tu aplicación web con Spring Boot/spring-i18n/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Internacionalización en Spring 3 | 4 | Implementar i18n en Spring. -------------------------------------------------------------------------------- /028. Mejora la internacionalización de tu aplicación web con Spring Boot/spring-i18n/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | spring.jpa.hibernate.ddl-auto=create 3 | spring.sql.init.mode=always 4 | spring.jpa.defer-datasource-initialization=true -------------------------------------------------------------------------------- /029. Testea tu API REST con Spring Boot/spring-rest-testing/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/029. Testea tu API REST con Spring Boot/spring-rest-testing/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /029. Testea tu API REST con Spring Boot/spring-rest-testing/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar 3 | -------------------------------------------------------------------------------- /029. Testea tu API REST con Spring Boot/spring-rest-testing/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Spring Testing de API REST 3 | 4 | Testing de API REST con JUnit 5 y MockMvc. -------------------------------------------------------------------------------- /029. Testea tu API REST con Spring Boot/spring-rest-testing/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /029. Testea tu API REST con Spring Boot/spring-rest-testing/src/test/java/com/example/CutomerControllerITest.java: -------------------------------------------------------------------------------- 1 | package com.example; 2 | 3 | import org.springframework.boot.test.web.client.TestRestTemplate; 4 | 5 | public class CutomerControllerITest { 6 | 7 | private TestRestTemplate template; 8 | 9 | 10 | } 11 | -------------------------------------------------------------------------------- /030. Testea la persistencia de tu aplicación con Spring Boot/spring-data-jpa-testing/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/030. Testea la persistencia de tu aplicación con Spring Boot/spring-data-jpa-testing/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /030. Testea la persistencia de tu aplicación con Spring Boot/spring-data-jpa-testing/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar 3 | -------------------------------------------------------------------------------- /030. Testea la persistencia de tu aplicación con Spring Boot/spring-data-jpa-testing/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Spring Testing de repositorios 3 | 4 | Testing de repositorios Spring Data JPA. -------------------------------------------------------------------------------- /030. Testea la persistencia de tu aplicación con Spring Boot/spring-data-jpa-testing/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /030. Testea la persistencia de tu aplicación con Spring Boot/spring-data-jpa-testing/src/test/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | spring.jpa.show-sql=true 3 | spring.jpa.properties.hibernate.format_sql=true -------------------------------------------------------------------------------- /030. Testea la persistencia de tu aplicación con Spring Boot/spring-data-jpa-testing/src/test/resources/com/example/customers.sql: -------------------------------------------------------------------------------- 1 | INSERT INTO orders (`client`, `total`) VALUES ('customer3', 10.0); 2 | INSERT INTO orders (`client`, `total`) VALUES ('customer4', 20.0); -------------------------------------------------------------------------------- /030. Testea la persistencia de tu aplicación con Spring Boot/spring-data-jpa-testing/src/test/resources/com/example/orders.sql: -------------------------------------------------------------------------------- 1 | INSERT INTO orders (`client`, `total`) VALUES ('customer1', 10.0); 2 | INSERT INTO orders (`client`, `total`) VALUES ('customer2', 20.0); -------------------------------------------------------------------------------- /031. Test Driven Development con Spring Boot/spring-tdd/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/031. Test Driven Development con Spring Boot/spring-tdd/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /031. Test Driven Development con Spring Boot/spring-tdd/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar 3 | -------------------------------------------------------------------------------- /031. Test Driven Development con Spring Boot/spring-tdd/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Test Driven Development (TDD) en Spring -------------------------------------------------------------------------------- /031. Test Driven Development con Spring Boot/spring-tdd/src/main/java/com/example/ProductRepository.java: -------------------------------------------------------------------------------- 1 | package com.example; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | import org.springframework.stereotype.Repository; 5 | 6 | @Repository 7 | public interface ProductRepository extends JpaRepository { 8 | } 9 | -------------------------------------------------------------------------------- /031. Test Driven Development con Spring Boot/spring-tdd/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /032. Documenta tu API REST con Spring Rest Docs/spring-rest-docs/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/032. Documenta tu API REST con Spring Rest Docs/spring-rest-docs/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /032. Documenta tu API REST con Spring Rest Docs/spring-rest-docs/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar 3 | -------------------------------------------------------------------------------- /032. Documenta tu API REST con Spring Rest Docs/spring-rest-docs/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Spring Rest Docs 3 | 4 | Documentación automática con Spring Rest Docs: 5 | 6 | * spring-restdocs-mockmvc 7 | * Asciidoctor -------------------------------------------------------------------------------- /032. Documenta tu API REST con Spring Rest Docs/spring-rest-docs/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /033. Cómo solucionar los problemas de fetching con Spring Data JPA/spring-data-jpa-fetching/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/033. Cómo solucionar los problemas de fetching con Spring Data JPA/spring-data-jpa-fetching/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /033. Cómo solucionar los problemas de fetching con Spring Data JPA/spring-data-jpa-fetching/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar 3 | -------------------------------------------------------------------------------- /033. Cómo solucionar los problemas de fetching con Spring Data JPA/spring-data-jpa-fetching/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Spring Data JPA: fetching 3 | 4 | Estrategias de fetching de datos en Spring Data JPA. -------------------------------------------------------------------------------- /033. Cómo solucionar los problemas de fetching con Spring Data JPA/spring-data-jpa-fetching/src/main/java/com/example/projection/BookTitle.java: -------------------------------------------------------------------------------- 1 | package com.example.projection; 2 | 3 | public interface BookTitle { 4 | 5 | String getTitle(); 6 | } 7 | -------------------------------------------------------------------------------- /033. Cómo solucionar los problemas de fetching con Spring Data JPA/spring-data-jpa-fetching/src/main/java/com/example/projection/BookView.java: -------------------------------------------------------------------------------- 1 | package com.example.projection; 2 | 3 | public interface BookView { 4 | 5 | String getBookTitle(); 6 | 7 | String getAuthorName(); 8 | 9 | String getAuthorCity(); 10 | } 11 | -------------------------------------------------------------------------------- /033. Cómo solucionar los problemas de fetching con Spring Data JPA/spring-data-jpa-fetching/src/main/java/com/example/repository/AddressRepository.java: -------------------------------------------------------------------------------- 1 | package com.example.repository; 2 | 3 | import com.example.model.Address; 4 | import org.springframework.data.jpa.repository.JpaRepository; 5 | 6 | public interface AddressRepository extends JpaRepository { 7 | } -------------------------------------------------------------------------------- /033. Cómo solucionar los problemas de fetching con Spring Data JPA/spring-data-jpa-fetching/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /034. Mejora tus modelos de datos de Spring Data JPA usando grafos de entidad/spring-data-jpa-entitygraph/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/034. Mejora tus modelos de datos de Spring Data JPA usando grafos de entidad/spring-data-jpa-entitygraph/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /034. Mejora tus modelos de datos de Spring Data JPA usando grafos de entidad/spring-data-jpa-entitygraph/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar 3 | -------------------------------------------------------------------------------- /034. Mejora tus modelos de datos de Spring Data JPA usando grafos de entidad/spring-data-jpa-entitygraph/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Spring Data JPA: Entity Graph 3 | 4 | Fetching de datos con Entity Graph -------------------------------------------------------------------------------- /034. Mejora tus modelos de datos de Spring Data JPA usando grafos de entidad/spring-data-jpa-entitygraph/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /035. Consultas con Criteria Query con Spring Data JPA/spring-data-jpa-criteria/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/035. Consultas con Criteria Query con Spring Data JPA/spring-data-jpa-criteria/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /035. Consultas con Criteria Query con Spring Data JPA/spring-data-jpa-criteria/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar 3 | -------------------------------------------------------------------------------- /035. Consultas con Criteria Query con Spring Data JPA/spring-data-jpa-criteria/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Spring Data JPA: Criteria API 3 | 4 | Consultas Criteria. -------------------------------------------------------------------------------- /035. Consultas con Criteria Query con Spring Data JPA/spring-data-jpa-criteria/src/main/java/com/example/ProductRepository.java: -------------------------------------------------------------------------------- 1 | package com.example; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | import org.springframework.stereotype.Repository; 5 | 6 | @Repository 7 | public interface ProductRepository extends JpaRepository{ 8 | } 9 | -------------------------------------------------------------------------------- /035. Consultas con Criteria Query con Spring Data JPA/spring-data-jpa-criteria/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /035. Consultas con Criteria Query con Spring Data JPA/spring-data-jpa-criteria/src/test/java/com/example/AppTests.java: -------------------------------------------------------------------------------- 1 | package com.example; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class AppTests { 8 | 9 | @Test 10 | void contextLoads() { 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /036. Consultas dinámicas con Spring Data JPA/spring-data-jpa-spec-qbe/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/036. Consultas dinámicas con Spring Data JPA/spring-data-jpa-spec-qbe/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /036. Consultas dinámicas con Spring Data JPA/spring-data-jpa-spec-qbe/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar 3 | -------------------------------------------------------------------------------- /036. Consultas dinámicas con Spring Data JPA/spring-data-jpa-spec-qbe/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Spring Data JPA: APIs Specification y Query By Example -------------------------------------------------------------------------------- /036. Consultas dinámicas con Spring Data JPA/spring-data-jpa-spec-qbe/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /036. Consultas dinámicas con Spring Data JPA/spring-data-jpa-spec-qbe/src/test/java/com/example/AppTests.java: -------------------------------------------------------------------------------- 1 | package com.example; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class AppTests { 8 | 9 | @Test 10 | void contextLoads() { 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /037. Diferentes tipos de repositorios en Spring Data JPA/spring-data-jpa-repositories/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/037. Diferentes tipos de repositorios en Spring Data JPA/spring-data-jpa-repositories/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /037. Diferentes tipos de repositorios en Spring Data JPA/spring-data-jpa-repositories/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar 3 | -------------------------------------------------------------------------------- /037. Diferentes tipos de repositorios en Spring Data JPA/spring-data-jpa-repositories/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Spring Data JPA: Repositorios -------------------------------------------------------------------------------- /037. Diferentes tipos de repositorios en Spring Data JPA/spring-data-jpa-repositories/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | spring.jpa.show-sql=true 3 | spring.jpa.properties.hibernate.format_sql=true -------------------------------------------------------------------------------- /038. Customiza tus repositorios con Spring Data JPA/spring-data-jpa-custom-repositories/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/038. Customiza tus repositorios con Spring Data JPA/spring-data-jpa-custom-repositories/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /038. Customiza tus repositorios con Spring Data JPA/spring-data-jpa-custom-repositories/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar 3 | -------------------------------------------------------------------------------- /038. Customiza tus repositorios con Spring Data JPA/spring-data-jpa-custom-repositories/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Spring Data JPA: Extender repositorios -------------------------------------------------------------------------------- /038. Customiza tus repositorios con Spring Data JPA/spring-data-jpa-custom-repositories/src/main/java/com/example/example1/ProductDAO.java: -------------------------------------------------------------------------------- 1 | package com.example.example1; 2 | 3 | import java.util.List; 4 | 5 | public interface ProductDAO { 6 | 7 | List findAllWithCriteria(); 8 | 9 | ProductStats fetchStats(); 10 | 11 | } 12 | -------------------------------------------------------------------------------- /038. Customiza tus repositorios con Spring Data JPA/spring-data-jpa-custom-repositories/src/main/java/com/example/example1/ProductStats.java: -------------------------------------------------------------------------------- 1 | package com.example.example1; 2 | 3 | public record ProductStats(Long products, Long offers, Long customers) { 4 | } 5 | -------------------------------------------------------------------------------- /038. Customiza tus repositorios con Spring Data JPA/spring-data-jpa-custom-repositories/src/main/java/com/example/example2/EmployeeRepository.java: -------------------------------------------------------------------------------- 1 | package com.example.example2; 2 | 3 | import org.springframework.stereotype.Repository; 4 | 5 | @Repository 6 | public interface EmployeeRepository extends BaseUserRepository { 7 | } 8 | -------------------------------------------------------------------------------- /038. Customiza tus repositorios con Spring Data JPA/spring-data-jpa-custom-repositories/src/main/java/com/example/example2/PersonRepository.java: -------------------------------------------------------------------------------- 1 | package com.example.example2; 2 | 3 | import org.springframework.stereotype.Repository; 4 | 5 | @Repository 6 | public interface PersonRepository extends BaseUserRepository{ 7 | } 8 | -------------------------------------------------------------------------------- /038. Customiza tus repositorios con Spring Data JPA/spring-data-jpa-custom-repositories/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /039. Auditoría de datos con Spring Data JPA/spring-data-jpa-auditing/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/039. Auditoría de datos con Spring Data JPA/spring-data-jpa-auditing/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /039. Auditoría de datos con Spring Data JPA/spring-data-jpa-auditing/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar 3 | -------------------------------------------------------------------------------- /039. Auditoría de datos con Spring Data JPA/spring-data-jpa-auditing/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Spring Data JPA: Auditoría de datos -------------------------------------------------------------------------------- /039. Auditoría de datos con Spring Data JPA/spring-data-jpa-auditing/src/main/java/com/example/model/Login.java: -------------------------------------------------------------------------------- 1 | package com.example.model; 2 | 3 | public record Login(String username, String password) { 4 | } 5 | -------------------------------------------------------------------------------- /039. Auditoría de datos con Spring Data JPA/spring-data-jpa-auditing/src/test/java/com/example/AppTests.java: -------------------------------------------------------------------------------- 1 | package com.example; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class AppTests { 8 | 9 | @Test 10 | void contextLoads() { 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /040. Cómo invocar procedimientos almacenados con Spring Data JPA/spring-data-jpa-procedure/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/040. Cómo invocar procedimientos almacenados con Spring Data JPA/spring-data-jpa-procedure/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /040. Cómo invocar procedimientos almacenados con Spring Data JPA/spring-data-jpa-procedure/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar 3 | -------------------------------------------------------------------------------- /040. Cómo invocar procedimientos almacenados con Spring Data JPA/spring-data-jpa-procedure/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Spring Data JPA: procedimientos -------------------------------------------------------------------------------- /041. Manejo de transacciones con Spring Data JPA/spring-data-jpa-transactions/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/041. Manejo de transacciones con Spring Data JPA/spring-data-jpa-transactions/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /041. Manejo de transacciones con Spring Data JPA/spring-data-jpa-transactions/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar 3 | -------------------------------------------------------------------------------- /041. Manejo de transacciones con Spring Data JPA/spring-data-jpa-transactions/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Spring Data JPA: Transacciones -------------------------------------------------------------------------------- /041. Manejo de transacciones con Spring Data JPA/spring-data-jpa-transactions/src/main/java/com/example/lock/optimistic/CustomerRepository.java: -------------------------------------------------------------------------------- 1 | package com.example.lock.optimistic; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | 5 | public interface CustomerRepository extends JpaRepository { 6 | 7 | } -------------------------------------------------------------------------------- /041. Manejo de transacciones con Spring Data JPA/spring-data-jpa-transactions/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | logging.level.org.springframework.orm.jpa=debug 3 | spring.datasource.url=jdbc:h2:mem:test;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE;LOCK_TIMEOUT=2000 -------------------------------------------------------------------------------- /042. Mejora el borrado de entidades con Spring Data JPA/spring-data-jpa-deletion/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/042. Mejora el borrado de entidades con Spring Data JPA/spring-data-jpa-deletion/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /042. Mejora el borrado de entidades con Spring Data JPA/spring-data-jpa-deletion/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar 3 | -------------------------------------------------------------------------------- /042. Mejora el borrado de entidades con Spring Data JPA/spring-data-jpa-deletion/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Spring Data JPA: Borrado de entidades -------------------------------------------------------------------------------- /042. Mejora el borrado de entidades con Spring Data JPA/spring-data-jpa-deletion/src/main/java/com/example/cascadeorphan/AuthorRepository.java: -------------------------------------------------------------------------------- 1 | package com.example.cascadeorphan; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | 5 | public interface AuthorRepository extends JpaRepository { 6 | } -------------------------------------------------------------------------------- /042. Mejora el borrado de entidades con Spring Data JPA/spring-data-jpa-deletion/src/main/java/com/example/sqldelete/EmployeeRepository.java: -------------------------------------------------------------------------------- 1 | package com.example.sqldelete; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | 5 | public interface EmployeeRepository extends JpaRepository { 6 | } -------------------------------------------------------------------------------- /043. Configuración programática del origen de datos con Spring Data JPA/spring-data-jpa-datasource/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/043. Configuración programática del origen de datos con Spring Data JPA/spring-data-jpa-datasource/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /043. Configuración programática del origen de datos con Spring Data JPA/spring-data-jpa-datasource/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar 3 | -------------------------------------------------------------------------------- /043. Configuración programática del origen de datos con Spring Data JPA/spring-data-jpa-datasource/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Spring Data JPA: configuración DataSource -------------------------------------------------------------------------------- /043. Configuración programática del origen de datos con Spring Data JPA/spring-data-jpa-datasource/db/database.mv.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/043. Configuración programática del origen de datos con Spring Data JPA/spring-data-jpa-datasource/db/database.mv.db -------------------------------------------------------------------------------- /043. Configuración programática del origen de datos con Spring Data JPA/spring-data-jpa-datasource/src/main/resources/application.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/043. Configuración programática del origen de datos con Spring Data JPA/spring-data-jpa-datasource/src/main/resources/application.properties -------------------------------------------------------------------------------- /044. Implementa un mecanismo de caché con Spring Boot y Redis/spring-redis-cache/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/044. Implementa un mecanismo de caché con Spring Boot y Redis/spring-redis-cache/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /044. Implementa un mecanismo de caché con Spring Boot y Redis/spring-redis-cache/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar 3 | -------------------------------------------------------------------------------- /044. Implementa un mecanismo de caché con Spring Boot y Redis/spring-redis-cache/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Spring Data Redis: Caché 3 | 4 | Uso de Redis como Caché -------------------------------------------------------------------------------- /044. Implementa un mecanismo de caché con Spring Boot y Redis/spring-redis-cache/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '3' 2 | services: 3 | redis: 4 | container_name: redis-spring 5 | hostname: redis 6 | image: redis 7 | ports: 8 | - "6379:6379" 9 | # redis GUI 10 | -------------------------------------------------------------------------------- /044. Implementa un mecanismo de caché con Spring Boot y Redis/spring-redis-cache/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.jpa.show-sql=true 2 | #spring.redis.username= 3 | #spring.redis.password= 4 | spring.cache.redis.time-to-live= -------------------------------------------------------------------------------- /045. Cómo generar tu esquema de base de datos con Spring Data JPA/spring-data-jpa-schemagen/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/045. Cómo generar tu esquema de base de datos con Spring Data JPA/spring-data-jpa-schemagen/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /045. Cómo generar tu esquema de base de datos con Spring Data JPA/spring-data-jpa-schemagen/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar 3 | -------------------------------------------------------------------------------- /046. Aprovecha el plugin JPA Buddy de Intellij IDEA en tus proyectos Spring Data JPA/spring-data-jpa-jpabuddy/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/046. Aprovecha el plugin JPA Buddy de Intellij IDEA en tus proyectos Spring Data JPA/spring-data-jpa-jpabuddy/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /046. Aprovecha el plugin JPA Buddy de Intellij IDEA en tus proyectos Spring Data JPA/spring-data-jpa-jpabuddy/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Spring Data JPA: JPA Buddy 3 | 4 | Uso del plugin JPA Buddy para IntelliJ IDEA. -------------------------------------------------------------------------------- /046. Aprovecha el plugin JPA Buddy de Intellij IDEA en tus proyectos Spring Data JPA/spring-data-jpa-jpabuddy/src/main/java/com/example/CustomerDto.java: -------------------------------------------------------------------------------- 1 | package com.example; 2 | 3 | import java.io.Serializable; 4 | 5 | public record CustomerDto(String fullName, Type type, Long version) implements Serializable { 6 | } 7 | -------------------------------------------------------------------------------- /046. Aprovecha el plugin JPA Buddy de Intellij IDEA en tus proyectos Spring Data JPA/spring-data-jpa-jpabuddy/src/main/java/com/example/Type.java: -------------------------------------------------------------------------------- 1 | package com.example; 2 | 3 | public enum Type { 4 | JUNIOR, SENIOR 5 | } 6 | -------------------------------------------------------------------------------- /046. Aprovecha el plugin JPA Buddy de Intellij IDEA en tus proyectos Spring Data JPA/spring-data-jpa-jpabuddy/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /047. Cómo mantener tu esquema de base de datos con Spring Data JPA y Flyway/spring-data-jpa-flyway/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/047. Cómo mantener tu esquema de base de datos con Spring Data JPA y Flyway/spring-data-jpa-flyway/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /047. Cómo mantener tu esquema de base de datos con Spring Data JPA y Flyway/spring-data-jpa-flyway/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar 3 | -------------------------------------------------------------------------------- /047. Cómo mantener tu esquema de base de datos con Spring Data JPA y Flyway/spring-data-jpa-flyway/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Spring Data JPA: Flyway 3 | 4 | Control de versiones sobre la base de datos con Flyway -------------------------------------------------------------------------------- /047. Cómo mantener tu esquema de base de datos con Spring Data JPA y Flyway/spring-data-jpa-flyway/src/main/resources/db/callbacks/afterMigrate.sql: -------------------------------------------------------------------------------- 1 | SELECT * FROM `employees`; -------------------------------------------------------------------------------- /047. Cómo mantener tu esquema de base de datos con Spring Data JPA y Flyway/spring-data-jpa-flyway/src/main/resources/db/migration/V1_1_0__employees_data.sql: -------------------------------------------------------------------------------- 1 | INSERT INTO employees (name, email) values ('emp1', 'emp1@company.com'); 2 | INSERT INTO employees (name, email) values ('emp2', 'emp2@company.com'); -------------------------------------------------------------------------------- /048. Cómo mantener tu esquema de base de datos con Spring Data JPA y Liquibase/spring-data-jpa-liquibase/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/048. Cómo mantener tu esquema de base de datos con Spring Data JPA y Liquibase/spring-data-jpa-liquibase/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /048. Cómo mantener tu esquema de base de datos con Spring Data JPA y Liquibase/spring-data-jpa-liquibase/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar 3 | -------------------------------------------------------------------------------- /048. Cómo mantener tu esquema de base de datos con Spring Data JPA y Liquibase/spring-data-jpa-liquibase/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Spring Data JPA: Liquibase 3 | 4 | Control de versiones sobre la base de datos con Liquibase. 5 | 6 | mvn liquibase:rollback -Dliquibase.rollbackTag=version_0.2.0 7 | mvn liquibase:rollback -Dliquibase.rollbackTag=version_0.1.0 -------------------------------------------------------------------------------- /048. Cómo mantener tu esquema de base de datos con Spring Data JPA y Liquibase/spring-data-jpa-liquibase/liquibase.properties: -------------------------------------------------------------------------------- 1 | driver=com.mysql.cj.jdbc.Driver 2 | url=jdbc:mysql://localhost:3306/spring_data_jpa_liquibase 3 | username=root 4 | password=admin 5 | changeLogFile=src/main/resources/liquibase/master.xml 6 | -------------------------------------------------------------------------------- /048. Cómo mantener tu esquema de base de datos con Spring Data JPA y Liquibase/spring-data-jpa-liquibase/src/main/resources/liquibase/data/employees.csv: -------------------------------------------------------------------------------- 1 | name;email;phone 2 | emp1;emp1@company.com;666555444 3 | emp2;emp2@company.com;666555444 4 | emp3;emp3@company.com;666555444 -------------------------------------------------------------------------------- /049. Consultas QueryDSL con Spring Data MongoDB/spring-data-mongo-querydsl/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/049. Consultas QueryDSL con Spring Data MongoDB/spring-data-mongo-querydsl/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /049. Consultas QueryDSL con Spring Data MongoDB/spring-data-mongo-querydsl/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar 3 | -------------------------------------------------------------------------------- /049. Consultas QueryDSL con Spring Data MongoDB/spring-data-mongo-querydsl/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Spring Data MongoDB: Consultas con QueryDSL -------------------------------------------------------------------------------- /049. Consultas QueryDSL con Spring Data MongoDB/spring-data-mongo-querydsl/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: "3.8" 2 | services: 3 | my-mongo-db: 4 | container_name: mongo-querydsl 5 | image: mongo:5.0.6 6 | ports: 7 | - "27017:27017" 8 | environment: 9 | MONGO_INITDB_ROOT_USERNAME: root 10 | MONGO_INITDB_ROOT_PASSWORD: admin -------------------------------------------------------------------------------- /049. Consultas QueryDSL con Spring Data MongoDB/spring-data-mongo-querydsl/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | spring.data.mongodb.database=spring_db 3 | spring.data.mongodb.host=localhost 4 | spring.data.mongodb.port=27017 5 | spring.data.mongodb.username=root 6 | spring.data.mongodb.password=admin 7 | spring.data.mongodb.authentication-database=admin -------------------------------------------------------------------------------- /049. Consultas QueryDSL con Spring Data MongoDB/spring-data-mongo-querydsl/src/test/java/com/example/AppTests.java: -------------------------------------------------------------------------------- 1 | package com.example; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class AppTests { 8 | 9 | @Test 10 | void contextLoads() { 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /050. Proyecciones y Agregaciones con Spring Data MongoDB/spring-data-mongodb-proj-agg/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/050. Proyecciones y Agregaciones con Spring Data MongoDB/spring-data-mongodb-proj-agg/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /050. Proyecciones y Agregaciones con Spring Data MongoDB/spring-data-mongodb-proj-agg/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar 3 | -------------------------------------------------------------------------------- /050. Proyecciones y Agregaciones con Spring Data MongoDB/spring-data-mongodb-proj-agg/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Spring Data MongoDB: Proyecciones y agregaciones -------------------------------------------------------------------------------- /050. Proyecciones y Agregaciones con Spring Data MongoDB/spring-data-mongodb-proj-agg/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: "3.8" 2 | services: 3 | my-mongo-db: 4 | container_name: mongo 5 | image: mongo:5.0.6 6 | ports: 7 | - "27017:27017" 8 | environment: 9 | MONGO_INITDB_ROOT_USERNAME: root 10 | MONGO_INITDB_ROOT_PASSWORD: admin -------------------------------------------------------------------------------- /050. Proyecciones y Agregaciones con Spring Data MongoDB/spring-data-mongodb-proj-agg/src/main/java/com/example/dto/PriceByCategory.java: -------------------------------------------------------------------------------- 1 | package com.example.dto; 2 | 3 | public record PriceByCategory(String category, double totalPrice) { 4 | } 5 | 6 | -------------------------------------------------------------------------------- /050. Proyecciones y Agregaciones con Spring Data MongoDB/spring-data-mongodb-proj-agg/src/main/java/com/example/dto/PriceByManufacturer.java: -------------------------------------------------------------------------------- 1 | package com.example.dto; 2 | 3 | public record PriceByManufacturer(String manufacturer, double totalPrice) { 4 | } 5 | 6 | -------------------------------------------------------------------------------- /050. Proyecciones y Agregaciones con Spring Data MongoDB/spring-data-mongodb-proj-agg/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | 3 | spring.data.mongodb.database=spring_db 4 | spring.data.mongodb.host=localhost 5 | spring.data.mongodb.port=27017 6 | spring.data.mongodb.username=root 7 | spring.data.mongodb.password=admin 8 | spring.data.mongodb.authentication-database=admin -------------------------------------------------------------------------------- /051. Implementa un rate-limit en tu API REST con Spring Boot/spring-rest-apirate-limit/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/051. Implementa un rate-limit en tu API REST con Spring Boot/spring-rest-apirate-limit/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /051. Implementa un rate-limit en tu API REST con Spring Boot/spring-rest-apirate-limit/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar 3 | -------------------------------------------------------------------------------- /051. Implementa un rate-limit en tu API REST con Spring Boot/spring-rest-apirate-limit/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Spring API Rate Limit con bucket4j -------------------------------------------------------------------------------- /051. Implementa un rate-limit en tu API REST con Spring Boot/spring-rest-apirate-limit/src/main/java/com/example/dto/LoginRequest.java: -------------------------------------------------------------------------------- 1 | package com.example.dto; 2 | 3 | public record LoginRequest(String username, String password) { 4 | } 5 | -------------------------------------------------------------------------------- /051. Implementa un rate-limit en tu API REST con Spring Boot/spring-rest-apirate-limit/src/main/java/com/example/dto/LoginResponse.java: -------------------------------------------------------------------------------- 1 | package com.example.dto; 2 | 3 | import java.util.List; 4 | 5 | public record LoginResponse(String username, List authorities, String token) { 6 | } 7 | -------------------------------------------------------------------------------- /051. Implementa un rate-limit en tu API REST con Spring Boot/spring-rest-apirate-limit/src/main/java/com/example/model/UserAuthority.java: -------------------------------------------------------------------------------- 1 | package com.example.model; 2 | 3 | public enum UserAuthority { 4 | READ, WRITE 5 | } 6 | -------------------------------------------------------------------------------- /051. Implementa un rate-limit en tu API REST con Spring Boot/spring-rest-apirate-limit/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | app.security.jwt.secret=K3lF7QAspsGG09mbIaryP3jtRkkxC5pwTV6BtM4kU5EXYRDEkMM9dUdjlpjPrEWYM 2 | app.security.jwt.expiration=86400 3 | -------------------------------------------------------------------------------- /052. Mejora tu API REST con Spring Boot aprovechando la librería Jackson/spring-jackson/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/052. Mejora tu API REST con Spring Boot aprovechando la librería Jackson/spring-jackson/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /052. Mejora tu API REST con Spring Boot aprovechando la librería Jackson/spring-jackson/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar 3 | -------------------------------------------------------------------------------- /052. Mejora tu API REST con Spring Boot aprovechando la librería Jackson/spring-jackson/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Funcionalidades Jackson en API REST de Spring -------------------------------------------------------------------------------- /052. Mejora tu API REST con Spring Boot aprovechando la librería Jackson/spring-jackson/src/main/java/com/example/repository/VehicleRepository.java: -------------------------------------------------------------------------------- 1 | package com.example.repository; 2 | 3 | import com.example.model.Vehicle; 4 | import org.springframework.data.jpa.repository.JpaRepository; 5 | 6 | public interface VehicleRepository extends JpaRepository { 7 | } -------------------------------------------------------------------------------- /052. Mejora tu API REST con Spring Boot aprovechando la librería Jackson/spring-jackson/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.jpa.open-in-view=false 2 | spring.jpa.show-sql=true 3 | #spring.jackson -------------------------------------------------------------------------------- /053. Utiliza JSON Views para mejorar las respuestas de tu API REST con Spring Boot/spring-jackson-jsonview/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/053. Utiliza JSON Views para mejorar las respuestas de tu API REST con Spring Boot/spring-jackson-jsonview/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /053. Utiliza JSON Views para mejorar las respuestas de tu API REST con Spring Boot/spring-jackson-jsonview/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Json Views con Jackson en API REST de Spring -------------------------------------------------------------------------------- /053. Utiliza JSON Views para mejorar las respuestas de tu API REST con Spring Boot/spring-jackson-jsonview/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /054. Spring Security Reactive/spring-security-reactive/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/054. Spring Security Reactive/spring-security-reactive/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /054. Spring Security Reactive/spring-security-reactive/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar 3 | -------------------------------------------------------------------------------- /054. Spring Security Reactive/spring-security-reactive/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Seguridad reactiva en Spring -------------------------------------------------------------------------------- /054. Spring Security Reactive/spring-security-reactive/src/main/java/com/example/dto/Login.java: -------------------------------------------------------------------------------- 1 | package com.example.dto; 2 | 3 | public record Login(String username, String password) { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /054. Spring Security Reactive/spring-security-reactive/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /054. Spring Security Reactive/spring-security-reactive/src/test/java/com/example/AppTests.java: -------------------------------------------------------------------------------- 1 | package com.example; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class AppTests { 8 | 9 | @Test 10 | void contextLoads() { 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /055. Implementa repositorios reactivos con Spring Data R2DBC/spring-data-r2dbc/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/055. Implementa repositorios reactivos con Spring Data R2DBC/spring-data-r2dbc/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /055. Implementa repositorios reactivos con Spring Data R2DBC/spring-data-r2dbc/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar 3 | -------------------------------------------------------------------------------- /055. Implementa repositorios reactivos con Spring Data R2DBC/spring-data-r2dbc/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Repositorios reactivos con Spring Data r2dbc -------------------------------------------------------------------------------- /055. Implementa repositorios reactivos con Spring Data R2DBC/spring-data-r2dbc/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.r2dbc.url=r2dbc:postgresql://localhost:5432/spring_data_r2dbc 2 | spring.r2dbc.username=admin 3 | spring.r2dbc.password=admin -------------------------------------------------------------------------------- /055. Implementa repositorios reactivos con Spring Data R2DBC/spring-data-r2dbc/src/main/resources/data.sql: -------------------------------------------------------------------------------- 1 | INSERT INTO vehicles(model, cubic_centimeters, released) VALUES 2 | ('vehicle1', 3.0, 1990), 3 | ('vehicle2', 3.0, 1990); -------------------------------------------------------------------------------- /056. Implementa repositorios reactivos con Spring Data MongoDB Reactive/spring-data-mongodb-reactive/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/056. Implementa repositorios reactivos con Spring Data MongoDB Reactive/spring-data-mongodb-reactive/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /056. Implementa repositorios reactivos con Spring Data MongoDB Reactive/spring-data-mongodb-reactive/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar 3 | -------------------------------------------------------------------------------- /056. Implementa repositorios reactivos con Spring Data MongoDB Reactive/spring-data-mongodb-reactive/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Repositorios reactivos con Spring Data MongoDB Reactive -------------------------------------------------------------------------------- /057. Implementa rápidamente una API REST con Spring Data REST/spring-data-rest/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/057. Implementa rápidamente una API REST con Spring Data REST/spring-data-rest/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /057. Implementa rápidamente una API REST con Spring Data REST/spring-data-rest/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar 3 | -------------------------------------------------------------------------------- /057. Implementa rápidamente una API REST con Spring Data REST/spring-data-rest/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Spring Data REST: Repositorios como controladores -------------------------------------------------------------------------------- /057. Implementa rápidamente una API REST con Spring Data REST/spring-data-rest/src/main/java/com/example/handler/ErrorMessage.java: -------------------------------------------------------------------------------- 1 | package com.example.handler; 2 | 3 | import java.util.List; 4 | 5 | public record ErrorMessage(List errors) { 6 | } 7 | -------------------------------------------------------------------------------- /057. Implementa rápidamente una API REST con Spring Data REST/spring-data-rest/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /058. Cómo enviar un email basado en una plantilla de Thymeleaf con Spring Boot/spring-thymeleaf-email/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/058. Cómo enviar un email basado en una plantilla de Thymeleaf con Spring Boot/spring-thymeleaf-email/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /058. Cómo enviar un email basado en una plantilla de Thymeleaf con Spring Boot/spring-thymeleaf-email/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Spring + Thymeleaf: envío de emails -------------------------------------------------------------------------------- /059. Websockets con Spring Boot/spring-websockets/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/059. Websockets con Spring Boot/spring-websockets/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /059. Websockets con Spring Boot/spring-websockets/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar 3 | -------------------------------------------------------------------------------- /059. Websockets con Spring Boot/spring-websockets/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Spring WebSockets -------------------------------------------------------------------------------- /059. Websockets con Spring Boot/spring-websockets/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | logging.level.root=info 3 | logging.level.org.springframework.web.socket=debug 4 | logging.level.org.springframework.messaging.simp=debug 5 | -------------------------------------------------------------------------------- /059. Websockets con Spring Boot/spring-websockets/src/main/resources/static/main.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/059. Websockets con Spring Boot/spring-websockets/src/main/resources/static/main.css -------------------------------------------------------------------------------- /059. Websockets con Spring Boot/spring-websockets/src/test/java/com/example/AppTests.java: -------------------------------------------------------------------------------- 1 | package com.example; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class AppTests { 8 | 9 | @Test 10 | void contextLoads() { 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /060. Implementa la subida de ficheros a una API REST con Spring Boot y MongoDB/spring-mongodb-upload-file/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/060. Implementa la subida de ficheros a una API REST con Spring Boot y MongoDB/spring-mongodb-upload-file/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /060. Implementa la subida de ficheros a una API REST con Spring Boot y MongoDB/spring-mongodb-upload-file/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Subir y guardar archivos con Spring Data MongoDB -------------------------------------------------------------------------------- /061. Implementa OAuth 2.0 con Spring Security/spring-security-oauth-github/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/061. Implementa OAuth 2.0 con Spring Security/spring-security-oauth-github/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /061. Implementa OAuth 2.0 con Spring Security/spring-security-oauth-github/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar 3 | -------------------------------------------------------------------------------- /061. Implementa OAuth 2.0 con Spring Security/spring-security-oauth-github/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | spring.security.oauth2.client.registration.github.client-id=cf69ad1928bff624440f 3 | spring.security.oauth2.client.registration.github.client-secret=4054417b4ef526ea2b4d0edc6a06564d7452fe38 -------------------------------------------------------------------------------- /061. Implementa OAuth 2.0 con Spring Security/spring-security-oauth-github/src/main/resources/templates/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Title 6 | 7 | 8 |

Página index

9 | Go to page1 10 | 11 | -------------------------------------------------------------------------------- /061. Implementa OAuth 2.0 con Spring Security/spring-security-oauth-github/src/test/java/com/example/AppTests.java: -------------------------------------------------------------------------------- 1 | package com.example; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class AppTests { 8 | 9 | @Test 10 | void contextLoads() { 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /062. Implementa la autenticación en dos pasos con Spring Boot/spring-security-2fa/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/062. Implementa la autenticación en dos pasos con Spring Boot/spring-security-2fa/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /062. Implementa la autenticación en dos pasos con Spring Boot/spring-security-2fa/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar 3 | -------------------------------------------------------------------------------- /062. Implementa la autenticación en dos pasos con Spring Boot/spring-security-2fa/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Spring Security: seguridad en dos pasos 2FA -------------------------------------------------------------------------------- /062. Implementa la autenticación en dos pasos con Spring Boot/spring-security-2fa/src/main/java/com/example/controller/VerificationCodeException.java: -------------------------------------------------------------------------------- 1 | package com.example.controller; 2 | 3 | public class VerificationCodeException extends RuntimeException { 4 | public VerificationCodeException(String msg) { 5 | super(msg); 6 | } 7 | } 8 | 9 | -------------------------------------------------------------------------------- /062. Implementa la autenticación en dos pasos con Spring Boot/spring-security-2fa/src/main/java/com/example/repository/AccountRepository.java: -------------------------------------------------------------------------------- 1 | package com.example.repository; 2 | 3 | 4 | import com.example.model.Account; 5 | 6 | public interface AccountRepository { 7 | Account find(String username); 8 | } 9 | 10 | -------------------------------------------------------------------------------- /062. Implementa la autenticación en dos pasos con Spring Boot/spring-security-2fa/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /063. Mejora la seguridad de tu aplicación Spring Boot/spring-security-authprovider/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/063. Mejora la seguridad de tu aplicación Spring Boot/spring-security-authprovider/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /063. Mejora la seguridad de tu aplicación Spring Boot/spring-security-authprovider/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar 3 | -------------------------------------------------------------------------------- /063. Mejora la seguridad de tu aplicación Spring Boot/spring-security-authprovider/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Spring Security: Personalizar la seguridad 3 | 4 | Comprobación de ips -------------------------------------------------------------------------------- /063. Mejora la seguridad de tu aplicación Spring Boot/spring-security-authprovider/src/main/java/com/example/model/UserAuthority.java: -------------------------------------------------------------------------------- 1 | package com.example.model; 2 | 3 | public enum UserAuthority { 4 | READ, WRITE 5 | } 6 | -------------------------------------------------------------------------------- /063. Mejora la seguridad de tu aplicación Spring Boot/spring-security-authprovider/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /064. Implementa un mecanismo de Remember me en tu aplicación web con Spring Boot/spring-security-remember-me/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/064. Implementa un mecanismo de Remember me en tu aplicación web con Spring Boot/spring-security-remember-me/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /064. Implementa un mecanismo de Remember me en tu aplicación web con Spring Boot/spring-security-remember-me/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Spring Security: mecanismo Remember me -------------------------------------------------------------------------------- /064. Implementa un mecanismo de Remember me en tu aplicación web con Spring Boot/spring-security-remember-me/src/main/java/com/example/model/UserAuthority.java: -------------------------------------------------------------------------------- 1 | package com.example.model; 2 | 3 | public enum UserAuthority { 4 | READ, WRITE 5 | } 6 | -------------------------------------------------------------------------------- /065. Seguridad a nivel de método en tu aplicación con Spring Boot/spring-security-method/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/065. Seguridad a nivel de método en tu aplicación con Spring Boot/spring-security-method/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /065. Seguridad a nivel de método en tu aplicación con Spring Boot/spring-security-method/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar 3 | -------------------------------------------------------------------------------- /065. Seguridad a nivel de método en tu aplicación con Spring Boot/spring-security-method/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Spring Security: JSR 250 seguridad a nivel de métodos -------------------------------------------------------------------------------- /065. Seguridad a nivel de método en tu aplicación con Spring Boot/spring-security-method/src/main/java/com/example/model/Employee.java: -------------------------------------------------------------------------------- 1 | package com.example.model; 2 | 3 | public record Employee(Long id, String username, Integer age) { 4 | } 5 | -------------------------------------------------------------------------------- /065. Seguridad a nivel de método en tu aplicación con Spring Boot/spring-security-method/src/main/java/com/example/model/Task.java: -------------------------------------------------------------------------------- 1 | package com.example.model; 2 | 3 | public record Task(Long id, String name, String username) { 4 | } 5 | -------------------------------------------------------------------------------- /065. Seguridad a nivel de método en tu aplicación con Spring Boot/spring-security-method/src/main/java/com/example/model/Vehicle.java: -------------------------------------------------------------------------------- 1 | package com.example.model; 2 | 3 | public record Vehicle(Long id, String manufacturer, String owner) { 4 | } 5 | -------------------------------------------------------------------------------- /065. Seguridad a nivel de método en tu aplicación con Spring Boot/spring-security-method/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /066. Utiliza Spring Security en los test de tu aplicación con Spring Boot/spring-security-test/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/066. Utiliza Spring Security en los test de tu aplicación con Spring Boot/spring-security-test/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /066. Utiliza Spring Security en los test de tu aplicación con Spring Boot/spring-security-test/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar 3 | -------------------------------------------------------------------------------- /066. Utiliza Spring Security en los test de tu aplicación con Spring Boot/spring-security-test/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Spring Security: Testing -------------------------------------------------------------------------------- /066. Utiliza Spring Security en los test de tu aplicación con Spring Boot/spring-security-test/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /067. Implementa un mecanismo de registro protegido por captcha/spring-captcha/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/067. Implementa un mecanismo de registro protegido por captcha/spring-captcha/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /067. Implementa un mecanismo de registro protegido por captcha/spring-captcha/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar 3 | -------------------------------------------------------------------------------- /067. Implementa un mecanismo de registro protegido por captcha/spring-captcha/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Spring AOP: Implementación de mecanismo captcha -------------------------------------------------------------------------------- /067. Implementa un mecanismo de registro protegido por captcha/spring-captcha/src/main/java/com/example/dto/HelloDTO.java: -------------------------------------------------------------------------------- 1 | package com.example.dto; 2 | 3 | public record HelloDTO(String name) { 4 | } 5 | -------------------------------------------------------------------------------- /067. Implementa un mecanismo de registro protegido por captcha/spring-captcha/src/main/java/com/example/dto/HelloResponseDTO.java: -------------------------------------------------------------------------------- 1 | package com.example.dto; 2 | 3 | public record HelloResponseDTO(String message) { 4 | } 5 | 6 | -------------------------------------------------------------------------------- /067. Implementa un mecanismo de registro protegido por captcha/spring-captcha/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | server.port=80 2 | google.recaptcha.secret=6Lc67RwiAAAAAMPNE80osph-t8OB7DrJvKdw10MT -------------------------------------------------------------------------------- /068. Implementa SSO con Spring Boot y Google/spring-security-oauth-google/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Spring Security: Single Sign On en múltiples aplicaciones -------------------------------------------------------------------------------- /068. Implementa SSO con Spring Boot y Google/spring-security-oauth-google/app1/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/068. Implementa SSO con Spring Boot y Google/spring-security-oauth-google/app1/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /068. Implementa SSO con Spring Boot y Google/spring-security-oauth-google/app1/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar 3 | -------------------------------------------------------------------------------- /068. Implementa SSO con Spring Boot y Google/spring-security-oauth-google/app2/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/068. Implementa SSO con Spring Boot y Google/spring-security-oauth-google/app2/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /068. Implementa SSO con Spring Boot y Google/spring-security-oauth-google/app2/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar 3 | -------------------------------------------------------------------------------- /069. Implementa SSO con Spring Boot y GitHub/spring-security-oauth-sso-github/README.md: -------------------------------------------------------------------------------- 1 | # Spring Security: Single Sign On en múltiples aplicaciones -------------------------------------------------------------------------------- /069. Implementa SSO con Spring Boot y GitHub/spring-security-oauth-sso-github/app1/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/069. Implementa SSO con Spring Boot y GitHub/spring-security-oauth-sso-github/app1/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /069. Implementa SSO con Spring Boot y GitHub/spring-security-oauth-sso-github/app1/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar 3 | -------------------------------------------------------------------------------- /069. Implementa SSO con Spring Boot y GitHub/spring-security-oauth-sso-github/app1/README.md: -------------------------------------------------------------------------------- 1 | 2 | 1. https://github.com/settings/developers 3 | 2. Crear OAuth app 4 | 3. Generar secret por cada aplicación spring -------------------------------------------------------------------------------- /069. Implementa SSO con Spring Boot y GitHub/spring-security-oauth-sso-github/app2/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/069. Implementa SSO con Spring Boot y GitHub/spring-security-oauth-sso-github/app2/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /069. Implementa SSO con Spring Boot y GitHub/spring-security-oauth-sso-github/app2/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar 3 | -------------------------------------------------------------------------------- /069. Implementa SSO con Spring Boot y GitHub/spring-security-oauth-sso-github/app2/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | server.port=8081 2 | spring.security.oauth2.client.registration.github.client-id=3f487e8df0be863c0ad3 3 | spring.security.oauth2.client.registration.github.client-secret=18c94d6620215b827c15c7ca15c67c0527475adb 4 | -------------------------------------------------------------------------------- /070. Despliega tu aplicación Spring Boot con Docker/spring-docker/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/070. Despliega tu aplicación Spring Boot con Docker/spring-docker/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /070. Despliega tu aplicación Spring Boot con Docker/spring-docker/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar 3 | -------------------------------------------------------------------------------- /070. Despliega tu aplicación Spring Boot con Docker/spring-docker/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Docker: Empaquetado de aplicación Spring Boot -------------------------------------------------------------------------------- /070. Despliega tu aplicación Spring Boot con Docker/spring-docker/src/main/java/com/example/model/Customer.java: -------------------------------------------------------------------------------- 1 | package com.example.model; 2 | 3 | public record Customer(Long id, String name) { 4 | } 5 | -------------------------------------------------------------------------------- /070. Despliega tu aplicación Spring Boot con Docker/spring-docker/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /070. Despliega tu aplicación Spring Boot con Docker/spring-docker/src/test/java/com/example/AppTests.java: -------------------------------------------------------------------------------- 1 | package com.example; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class AppTests { 8 | 9 | @Test 10 | void contextLoads() { 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /071. Despliega con Docker Compose tu aplicación Spring Boot + Angular + PostgreSQL/spring-docker-compose/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Docker Compose: empaquetado de aplicación Spring Boot + Angular -------------------------------------------------------------------------------- /071. Despliega con Docker Compose tu aplicación Spring Boot + Angular + PostgreSQL/spring-docker-compose/backend/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/071. Despliega con Docker Compose tu aplicación Spring Boot + Angular + PostgreSQL/spring-docker-compose/backend/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /071. Despliega con Docker Compose tu aplicación Spring Boot + Angular + PostgreSQL/spring-docker-compose/backend/src/main/java/com/example/BookRepository.java: -------------------------------------------------------------------------------- 1 | package com.example; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | 5 | public interface BookRepository extends JpaRepository { 6 | } -------------------------------------------------------------------------------- /071. Despliega con Docker Compose tu aplicación Spring Boot + Angular + PostgreSQL/spring-docker-compose/frontend/src/app/app.component.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/071. Despliega con Docker Compose tu aplicación Spring Boot + Angular + PostgreSQL/spring-docker-compose/frontend/src/app/app.component.css -------------------------------------------------------------------------------- /071. Despliega con Docker Compose tu aplicación Spring Boot + Angular + PostgreSQL/spring-docker-compose/frontend/src/app/models/book.spec.ts: -------------------------------------------------------------------------------- 1 | import { Book } from './book'; 2 | 3 | describe('Book', () => { 4 | it('should create an instance', () => { 5 | expect(new Book()).toBeTruthy(); 6 | }); 7 | }); 8 | -------------------------------------------------------------------------------- /071. Despliega con Docker Compose tu aplicación Spring Boot + Angular + PostgreSQL/spring-docker-compose/frontend/src/app/models/book.ts: -------------------------------------------------------------------------------- 1 | export class Book { 2 | id?: any; 3 | title?: string; 4 | } 5 | -------------------------------------------------------------------------------- /071. Despliega con Docker Compose tu aplicación Spring Boot + Angular + PostgreSQL/spring-docker-compose/frontend/src/assets/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/071. Despliega con Docker Compose tu aplicación Spring Boot + Angular + PostgreSQL/spring-docker-compose/frontend/src/assets/.gitkeep -------------------------------------------------------------------------------- /071. Despliega con Docker Compose tu aplicación Spring Boot + Angular + PostgreSQL/spring-docker-compose/frontend/src/environments/environment.prod.ts: -------------------------------------------------------------------------------- 1 | export const environment = { 2 | production: true 3 | }; 4 | -------------------------------------------------------------------------------- /071. Despliega con Docker Compose tu aplicación Spring Boot + Angular + PostgreSQL/spring-docker-compose/frontend/src/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/071. Despliega con Docker Compose tu aplicación Spring Boot + Angular + PostgreSQL/spring-docker-compose/frontend/src/favicon.ico -------------------------------------------------------------------------------- /071. Despliega con Docker Compose tu aplicación Spring Boot + Angular + PostgreSQL/spring-docker-compose/frontend/src/styles.css: -------------------------------------------------------------------------------- 1 | /* You can add global styles to this file, and also import other style files */ 2 | -------------------------------------------------------------------------------- /072. Externaliza la configuración de tu aplicación con Spring Boot/spring-cloud-config/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/072. Externaliza la configuración de tu aplicación con Spring Boot/spring-cloud-config/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /072. Externaliza la configuración de tu aplicación con Spring Boot/spring-cloud-config/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar 3 | -------------------------------------------------------------------------------- /072. Externaliza la configuración de tu aplicación con Spring Boot/spring-cloud-config/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Spring Cloud: Microservicio de configuración -------------------------------------------------------------------------------- /073. Despliega tu aplicación Spring Boot en AWS EC2/spring-docker/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/073. Despliega tu aplicación Spring Boot en AWS EC2/spring-docker/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /073. Despliega tu aplicación Spring Boot en AWS EC2/spring-docker/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar 3 | -------------------------------------------------------------------------------- /073. Despliega tu aplicación Spring Boot en AWS EC2/spring-docker/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Despliegue AWS: despliegue de aplicación Spring Boot con Docker -------------------------------------------------------------------------------- /073. Despliega tu aplicación Spring Boot en AWS EC2/spring-docker/src/main/java/com/example/model/Customer.java: -------------------------------------------------------------------------------- 1 | package com.example.model; 2 | 3 | public record Customer(Long id, String name) { 4 | } 5 | -------------------------------------------------------------------------------- /073. Despliega tu aplicación Spring Boot en AWS EC2/spring-docker/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /073. Despliega tu aplicación Spring Boot en AWS EC2/spring-docker/src/test/java/com/example/AppTests.java: -------------------------------------------------------------------------------- 1 | package com.example; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class AppTests { 8 | 9 | @Test 10 | void contextLoads() { 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /074. Introducción a los microservicios con Spring Cloud/spring-cloud/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Spring Cloud: arquitectura de microservicios -------------------------------------------------------------------------------- /074. Introducción a los microservicios con Spring Cloud/spring-cloud/customers-service/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/074. Introducción a los microservicios con Spring Cloud/spring-cloud/customers-service/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /074. Introducción a los microservicios con Spring Cloud/spring-cloud/customers-service/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar 3 | -------------------------------------------------------------------------------- /074. Introducción a los microservicios con Spring Cloud/spring-cloud/customers-service/src/main/java/com/example/dto/DirectionDTO.java: -------------------------------------------------------------------------------- 1 | package com.example.dto; 2 | 3 | public record DirectionDTO(Long id, String street) { 4 | } 5 | -------------------------------------------------------------------------------- /074. Introducción a los microservicios con Spring Cloud/spring-cloud/customers-service/src/main/java/com/example/exception/BusinessException.java: -------------------------------------------------------------------------------- 1 | package com.example.exception; 2 | 3 | public class BusinessException extends RuntimeException { 4 | 5 | public BusinessException(String message) { 6 | super(message); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /074. Introducción a los microservicios con Spring Cloud/spring-cloud/customers-service/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | 2 | spring: 3 | cloud: 4 | config: 5 | uri: http://localhost:8888 6 | application: 7 | name: customers-service -------------------------------------------------------------------------------- /074. Introducción a los microservicios con Spring Cloud/spring-cloud/directions-service/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/074. Introducción a los microservicios con Spring Cloud/spring-cloud/directions-service/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /074. Introducción a los microservicios con Spring Cloud/spring-cloud/directions-service/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar 3 | -------------------------------------------------------------------------------- /074. Introducción a los microservicios con Spring Cloud/spring-cloud/directions-service/src/main/java/com/example/dto/DirectionDTO.java: -------------------------------------------------------------------------------- 1 | package com.example.dto; 2 | 3 | public record DirectionDTO(Long id, String street) { 4 | } 5 | -------------------------------------------------------------------------------- /074. Introducción a los microservicios con Spring Cloud/spring-cloud/directions-service/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | 2 | spring: 3 | cloud: 4 | config: 5 | uri: http://localhost:8888 6 | application: 7 | name: directions-service -------------------------------------------------------------------------------- /074. Introducción a los microservicios con Spring Cloud/spring-cloud/spring-cloud-eureka/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/074. Introducción a los microservicios con Spring Cloud/spring-cloud/spring-cloud-eureka/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /074. Introducción a los microservicios con Spring Cloud/spring-cloud/spring-cloud-eureka/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar 3 | -------------------------------------------------------------------------------- /074. Introducción a los microservicios con Spring Cloud/spring-cloud/spring-cloud-gateway/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/074. Introducción a los microservicios con Spring Cloud/spring-cloud/spring-cloud-gateway/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /074. Introducción a los microservicios con Spring Cloud/spring-cloud/spring-cloud-gateway/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar 3 | -------------------------------------------------------------------------------- /074. Introducción a los microservicios con Spring Cloud/spring-cloud/spring-cloud-gateway/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | cloud: 3 | config: 4 | uri: http://localhost:8888 5 | application: 6 | name: gateway 7 | -------------------------------------------------------------------------------- /074. Introducción a los microservicios con Spring Cloud/spring-cloud/spring-config-external/microservice1/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/074. Introducción a los microservicios con Spring Cloud/spring-cloud/spring-config-external/microservice1/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /074. Introducción a los microservicios con Spring Cloud/spring-cloud/spring-config-external/microservice1/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: microservice1 4 | cloud: 5 | config: 6 | uri: http://localhost:8888 7 | 8 | app.message: hola desde archivo local -------------------------------------------------------------------------------- /074. Introducción a los microservicios con Spring Cloud/spring-cloud/spring-config-external/spring-cloud-config/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/074. Introducción a los microservicios con Spring Cloud/spring-cloud/spring-config-external/spring-cloud-config/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /075. Mejora tus microservicios con Spring Cloud usando Resilience4j/spring-cloud/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Spring Cloud: arquitectura de microservicios -------------------------------------------------------------------------------- /075. Mejora tus microservicios con Spring Cloud usando Resilience4j/spring-cloud/customers-service/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/075. Mejora tus microservicios con Spring Cloud usando Resilience4j/spring-cloud/customers-service/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /075. Mejora tus microservicios con Spring Cloud usando Resilience4j/spring-cloud/customers-service/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar 3 | -------------------------------------------------------------------------------- /075. Mejora tus microservicios con Spring Cloud usando Resilience4j/spring-cloud/customers-service/src/main/java/com/example/dto/DirectionDTO.java: -------------------------------------------------------------------------------- 1 | package com.example.dto; 2 | 3 | public record DirectionDTO(Long id, String street) { 4 | } 5 | -------------------------------------------------------------------------------- /075. Mejora tus microservicios con Spring Cloud usando Resilience4j/spring-cloud/customers-service/src/main/java/com/example/exception/BusinessException.java: -------------------------------------------------------------------------------- 1 | package com.example.exception; 2 | 3 | public class BusinessException extends RuntimeException { 4 | 5 | public BusinessException(String message) { 6 | super(message); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /075. Mejora tus microservicios con Spring Cloud usando Resilience4j/spring-cloud/customers-service/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | 2 | spring: 3 | cloud: 4 | config: 5 | uri: http://localhost:8888 6 | application: 7 | name: customers-service -------------------------------------------------------------------------------- /075. Mejora tus microservicios con Spring Cloud usando Resilience4j/spring-cloud/directions-service/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/075. Mejora tus microservicios con Spring Cloud usando Resilience4j/spring-cloud/directions-service/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /075. Mejora tus microservicios con Spring Cloud usando Resilience4j/spring-cloud/directions-service/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar 3 | -------------------------------------------------------------------------------- /075. Mejora tus microservicios con Spring Cloud usando Resilience4j/spring-cloud/directions-service/src/main/java/com/example/dto/DirectionDTO.java: -------------------------------------------------------------------------------- 1 | package com.example.dto; 2 | 3 | public record DirectionDTO(Long id, String street) { 4 | } 5 | -------------------------------------------------------------------------------- /075. Mejora tus microservicios con Spring Cloud usando Resilience4j/spring-cloud/directions-service/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | 2 | spring: 3 | cloud: 4 | config: 5 | uri: http://localhost:8888 6 | application: 7 | name: directions-service -------------------------------------------------------------------------------- /075. Mejora tus microservicios con Spring Cloud usando Resilience4j/spring-cloud/spring-cloud-eureka/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/075. Mejora tus microservicios con Spring Cloud usando Resilience4j/spring-cloud/spring-cloud-eureka/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /075. Mejora tus microservicios con Spring Cloud usando Resilience4j/spring-cloud/spring-cloud-gateway/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/075. Mejora tus microservicios con Spring Cloud usando Resilience4j/spring-cloud/spring-cloud-gateway/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /075. Mejora tus microservicios con Spring Cloud usando Resilience4j/spring-cloud/spring-cloud-gateway/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | cloud: 3 | config: 4 | uri: http://localhost:8888 5 | application: 6 | name: gateway 7 | -------------------------------------------------------------------------------- /075. Mejora tus microservicios con Spring Cloud usando Resilience4j/spring-cloud/spring-config-external/microservice1/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: microservice1 4 | cloud: 5 | config: 6 | uri: http://localhost:8888 7 | 8 | app.message: hola desde archivo local -------------------------------------------------------------------------------- /076. Incluye seguridad en tus microservicios con Spring Cloud Gateway/spring-security-microservices/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Spring Cloud: seguridad en arquitecturas de microservicios -------------------------------------------------------------------------------- /076. Incluye seguridad en tus microservicios con Spring Cloud Gateway/spring-security-microservices/product-service/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | server.port=8081 3 | spring.security.oauth2.resourceserver.jwt.jwk-set-uri=http://localhost:8090/realms/realm1/protocol/openid-connect/certs -------------------------------------------------------------------------------- /077. Conecta tu aplicación Spring Boot con otros microservicios usando OpenFeign/spring-cloud/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Spring Cloud: comunicación entre microservicios usando OpenFeign -------------------------------------------------------------------------------- /077. Conecta tu aplicación Spring Boot con otros microservicios usando OpenFeign/spring-cloud/customers-service/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/077. Conecta tu aplicación Spring Boot con otros microservicios usando OpenFeign/spring-cloud/customers-service/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /077. Conecta tu aplicación Spring Boot con otros microservicios usando OpenFeign/spring-cloud/customers-service/src/main/java/com/example/dto/DirectionDTO.java: -------------------------------------------------------------------------------- 1 | package com.example.dto; 2 | 3 | public record DirectionDTO(Long id, String street) { 4 | } 5 | -------------------------------------------------------------------------------- /077. Conecta tu aplicación Spring Boot con otros microservicios usando OpenFeign/spring-cloud/customers-service/src/main/java/com/example/exception/BusinessException.java: -------------------------------------------------------------------------------- 1 | package com.example.exception; 2 | 3 | public class BusinessException extends RuntimeException { 4 | 5 | public BusinessException(String message) { 6 | super(message); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /077. Conecta tu aplicación Spring Boot con otros microservicios usando OpenFeign/spring-cloud/customers-service/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | 2 | spring: 3 | cloud: 4 | config: 5 | uri: http://localhost:8888 6 | application: 7 | name: customers-service -------------------------------------------------------------------------------- /077. Conecta tu aplicación Spring Boot con otros microservicios usando OpenFeign/spring-cloud/directions-service/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/077. Conecta tu aplicación Spring Boot con otros microservicios usando OpenFeign/spring-cloud/directions-service/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /077. Conecta tu aplicación Spring Boot con otros microservicios usando OpenFeign/spring-cloud/directions-service/src/main/java/com/example/dto/DirectionDTO.java: -------------------------------------------------------------------------------- 1 | package com.example.dto; 2 | 3 | public record DirectionDTO(Long id, String street) { 4 | } 5 | -------------------------------------------------------------------------------- /077. Conecta tu aplicación Spring Boot con otros microservicios usando OpenFeign/spring-cloud/directions-service/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | 2 | spring: 3 | cloud: 4 | config: 5 | uri: http://localhost:8888 6 | application: 7 | name: directions-service -------------------------------------------------------------------------------- /077. Conecta tu aplicación Spring Boot con otros microservicios usando OpenFeign/spring-cloud/spring-cloud-eureka/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/077. Conecta tu aplicación Spring Boot con otros microservicios usando OpenFeign/spring-cloud/spring-cloud-eureka/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /077. Conecta tu aplicación Spring Boot con otros microservicios usando OpenFeign/spring-cloud/spring-cloud-gateway/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/077. Conecta tu aplicación Spring Boot con otros microservicios usando OpenFeign/spring-cloud/spring-cloud-gateway/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /077. Conecta tu aplicación Spring Boot con otros microservicios usando OpenFeign/spring-cloud/spring-cloud-gateway/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | cloud: 3 | config: 4 | uri: http://localhost:8888 5 | application: 6 | name: gateway 7 | -------------------------------------------------------------------------------- /077. Conecta tu aplicación Spring Boot con otros microservicios usando OpenFeign/spring-cloud/spring-config-external/microservice1/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: microservice1 4 | cloud: 5 | config: 6 | uri: http://localhost:8888 7 | 8 | app.message: hola desde archivo local -------------------------------------------------------------------------------- /078. Utiliza Apache Kafka con tu aplicación Spring Boot/spring-kafka-producer/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/078. Utiliza Apache Kafka con tu aplicación Spring Boot/spring-kafka-producer/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /078. Utiliza Apache Kafka con tu aplicación Spring Boot/spring-kafka-producer/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar 3 | -------------------------------------------------------------------------------- /078. Utiliza Apache Kafka con tu aplicación Spring Boot/spring-kafka-producer/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Spring Kafka: Creación de un Producer -------------------------------------------------------------------------------- /079. Spring Batch/spring-batch/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/079. Spring Batch/spring-batch/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /079. Spring Batch/spring-batch/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar 3 | -------------------------------------------------------------------------------- /079. Spring Batch/spring-batch/README.md: -------------------------------------------------------------------------------- 1 | # Spring Batch: escritura masiva de datos -------------------------------------------------------------------------------- /079. Spring Batch/spring-batch/src/test/java/com/example/SpringBatchApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.example; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class SpringBatchApplicationTests { 8 | 9 | @Test 10 | void contextLoads() { 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /080. Consultas usando QueryDSL con Spring Data JPA/spring-data-jpa-querydsl/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/080. Consultas usando QueryDSL con Spring Data JPA/spring-data-jpa-querydsl/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /080. Consultas usando QueryDSL con Spring Data JPA/spring-data-jpa-querydsl/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar 3 | -------------------------------------------------------------------------------- /080. Consultas usando QueryDSL con Spring Data JPA/spring-data-jpa-querydsl/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Spring Data JPA: consultas con QueryDSL -------------------------------------------------------------------------------- /080. Consultas usando QueryDSL con Spring Data JPA/spring-data-jpa-querydsl/src/main/java/com/example/repository/AddressRepository.java: -------------------------------------------------------------------------------- 1 | package com.example.repository; 2 | 3 | import com.example.model.Address; 4 | import org.springframework.data.jpa.repository.JpaRepository; 5 | 6 | public interface AddressRepository extends JpaRepository { 7 | } -------------------------------------------------------------------------------- /080. Consultas usando QueryDSL con Spring Data JPA/spring-data-jpa-querydsl/src/main/java/com/example/repository/BookRepository.java: -------------------------------------------------------------------------------- 1 | package com.example.repository; 2 | 3 | import com.example.model.Book; 4 | import org.springframework.data.jpa.repository.JpaRepository; 5 | 6 | public interface BookRepository extends JpaRepository { 7 | } -------------------------------------------------------------------------------- /080. Consultas usando QueryDSL con Spring Data JPA/spring-data-jpa-querydsl/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /081. Crea un filtro para tu API REST con Spring Boot/spring-data-jpa-rest-querydsl/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/081. Crea un filtro para tu API REST con Spring Boot/spring-data-jpa-rest-querydsl/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /081. Crea un filtro para tu API REST con Spring Boot/spring-data-jpa-rest-querydsl/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar 3 | -------------------------------------------------------------------------------- /081. Crea un filtro para tu API REST con Spring Boot/spring-data-jpa-rest-querydsl/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Spring Data JPA: filtros en API REST con QueryDSL -------------------------------------------------------------------------------- /081. Crea un filtro para tu API REST con Spring Boot/spring-data-jpa-rest-querydsl/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /082. Configura varios orígenes de datos diferentes para tu proyecto con Spring Data JPA/spring-data-jpa-datasource-multiple/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Spring Data JPA: múltiples DataSource 3 | 4 | Conexión con múltiples bases de datos desde una misma aplicación Spring Boot. -------------------------------------------------------------------------------- /083. Utiliza Redis como Message Broker para tus microservicios con Spring Boot/spring-redis-messaging/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Spring Data Redis: arquitectura Publisher - Subscriber 3 | 4 | Usando Redis como middleware Message Broker para el envío de mensajes. -------------------------------------------------------------------------------- /083. Utiliza Redis como Message Broker para tus microservicios con Spring Boot/spring-redis-messaging/publisher/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/083. Utiliza Redis como Message Broker para tus microservicios con Spring Boot/spring-redis-messaging/publisher/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /083. Utiliza Redis como Message Broker para tus microservicios con Spring Boot/spring-redis-messaging/publisher/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '3' 2 | services: 3 | redis: 4 | container_name: redis 5 | hostname: redis 6 | image: redis 7 | ports: 8 | - "6379:6379" 9 | 10 | # docker-compose up -d -------------------------------------------------------------------------------- /083. Utiliza Redis como Message Broker para tus microservicios con Spring Boot/spring-redis-messaging/publisher/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /083. Utiliza Redis como Message Broker para tus microservicios con Spring Boot/spring-redis-messaging/subscriber/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/083. Utiliza Redis como Message Broker para tus microservicios con Spring Boot/spring-redis-messaging/subscriber/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /083. Utiliza Redis como Message Broker para tus microservicios con Spring Boot/spring-redis-messaging/subscriber/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | #spring.redis. 2 | server.port=8090 -------------------------------------------------------------------------------- /084. Cómo implementar el versionado de tu API REST con Spring Boot/spring-rest-versioning/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/084. Cómo implementar el versionado de tu API REST con Spring Boot/spring-rest-versioning/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /084. Cómo implementar el versionado de tu API REST con Spring Boot/spring-rest-versioning/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar 3 | -------------------------------------------------------------------------------- /084. Cómo implementar el versionado de tu API REST con Spring Boot/spring-rest-versioning/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Spring API REST versionado 3 | 4 | Estrategias de versionado para API REST con Spring. -------------------------------------------------------------------------------- /084. Cómo implementar el versionado de tu API REST con Spring Boot/spring-rest-versioning/src/main/java/com/example/model/Company.java: -------------------------------------------------------------------------------- 1 | package com.example.model; 2 | 3 | public record Company(Long id, String name) { 4 | } 5 | -------------------------------------------------------------------------------- /084. Cómo implementar el versionado de tu API REST con Spring Boot/spring-rest-versioning/src/main/java/com/example/model/Employee.java: -------------------------------------------------------------------------------- 1 | package com.example.model; 2 | 3 | public record Employee(Long id, String name) { 4 | } 5 | -------------------------------------------------------------------------------- /084. Cómo implementar el versionado de tu API REST con Spring Boot/spring-rest-versioning/src/main/java/com/example/model/Vehicle.java: -------------------------------------------------------------------------------- 1 | package com.example.model; 2 | 3 | public record Vehicle(Long id, String name) { 4 | } 5 | -------------------------------------------------------------------------------- /084. Cómo implementar el versionado de tu API REST con Spring Boot/spring-rest-versioning/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /085. Cómo filtrar la salida de tu API REST según el rol de usuario de Spring Security/spring-security-jsonview/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/085. Cómo filtrar la salida de tu API REST según el rol de usuario de Spring Security/spring-security-jsonview/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /085. Cómo filtrar la salida de tu API REST según el rol de usuario de Spring Security/spring-security-jsonview/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Spring Security: Jackson Json Views para filtrar la salida en función del usuario -------------------------------------------------------------------------------- /085. Cómo filtrar la salida de tu API REST según el rol de usuario de Spring Security/spring-security-jsonview/src/main/java/com/example/model/Role.java: -------------------------------------------------------------------------------- 1 | package com.example.model; 2 | 3 | public enum Role { 4 | ROLE_ADMIN, ROLE_MANAGER, ROLE_USER 5 | } 6 | -------------------------------------------------------------------------------- /085. Cómo filtrar la salida de tu API REST según el rol de usuario de Spring Security/spring-security-jsonview/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /086. Implementa la seguridad de tu API REST con Spring Security y LDAP/spring-security-ldap/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/086. Implementa la seguridad de tu API REST con Spring Security y LDAP/spring-security-ldap/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /086. Implementa la seguridad de tu API REST con Spring Security y LDAP/spring-security-ldap/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar 3 | -------------------------------------------------------------------------------- /086. Implementa la seguridad de tu API REST con Spring Security y LDAP/spring-security-ldap/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | #spring.ldap.embedded.ldif=classpath:users.ldif 2 | #spring.ldap.* -------------------------------------------------------------------------------- /087. Implementa una API Reactiva con Spring WebFlux y R2DBC/spring-webflux-r2dbc/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/087. Implementa una API Reactiva con Spring WebFlux y R2DBC/spring-webflux-r2dbc/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /087. Implementa una API Reactiva con Spring WebFlux y R2DBC/spring-webflux-r2dbc/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar 3 | -------------------------------------------------------------------------------- /087. Implementa una API Reactiva con Spring WebFlux y R2DBC/spring-webflux-r2dbc/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Spring WebFlux + Spring Data r2dbc -------------------------------------------------------------------------------- /087. Implementa una API Reactiva con Spring WebFlux y R2DBC/spring-webflux-r2dbc/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: "3" 2 | services: 3 | postgres: 4 | image: postgres:14.5 5 | container_name: postgres 6 | environment: 7 | - POSTGRES_USER=admin 8 | - POSTGRES_PASSWORD=admin 9 | - POSTGRES_DB=spring_r2dbc 10 | ports: 11 | - 5432:5432 -------------------------------------------------------------------------------- /087. Implementa una API Reactiva con Spring WebFlux y R2DBC/spring-webflux-r2dbc/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.r2dbc.url=r2dbc:postgresql://localhost:5432/spring_r2dbc 2 | spring.r2dbc.username=admin 3 | spring.r2dbc.password=admin 4 | -------------------------------------------------------------------------------- /088. Implementa una API Reactiva con Spring WebFlux y R2DBC con Kotlin/spring-webflux-r2dbc-kotlin/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/088. Implementa una API Reactiva con Spring WebFlux y R2DBC con Kotlin/spring-webflux-r2dbc-kotlin/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /088. Implementa una API Reactiva con Spring WebFlux y R2DBC con Kotlin/spring-webflux-r2dbc-kotlin/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar 3 | -------------------------------------------------------------------------------- /088. Implementa una API Reactiva con Spring WebFlux y R2DBC con Kotlin/spring-webflux-r2dbc-kotlin/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Spring WebFlux + Spring Data r2dbc + Kotlin -------------------------------------------------------------------------------- /088. Implementa una API Reactiva con Spring WebFlux y R2DBC con Kotlin/spring-webflux-r2dbc-kotlin/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.r2dbc.url=r2dbc:postgresql://localhost:5432/spring_r2dbc 2 | spring.r2dbc.username=admin 3 | spring.r2dbc.password=admin -------------------------------------------------------------------------------- /089. Implementa una API Reactiva con Spring WebFlux y MongoDB/spring-webflux-mongo-reactive/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/089. Implementa una API Reactiva con Spring WebFlux y MongoDB/spring-webflux-mongo-reactive/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /089. Implementa una API Reactiva con Spring WebFlux y MongoDB/spring-webflux-mongo-reactive/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar 3 | -------------------------------------------------------------------------------- /089. Implementa una API Reactiva con Spring WebFlux y MongoDB/spring-webflux-mongo-reactive/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Spring WebFlux + Spring Data MongoDB Reactive -------------------------------------------------------------------------------- /089. Implementa una API Reactiva con Spring WebFlux y MongoDB/spring-webflux-mongo-reactive/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.data.mongodb.host=localhost 2 | spring.data.mongodb.port=27017 3 | spring.data.mongodb.database=spring_db 4 | spring.data.mongodb.username=root 5 | spring.data.mongodb.password=admin 6 | spring.data.mongodb.authentication-database=admin -------------------------------------------------------------------------------- /090. Implementa una API Reactiva con Spring WebFlux y MongoDB con Kotlin/spring-webflux-mongo-reactive-kotlin/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/090. Implementa una API Reactiva con Spring WebFlux y MongoDB con Kotlin/spring-webflux-mongo-reactive-kotlin/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /090. Implementa una API Reactiva con Spring WebFlux y MongoDB con Kotlin/spring-webflux-mongo-reactive-kotlin/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Spring WebFlux + Spring Data MongoDB Reactive + Kotlin -------------------------------------------------------------------------------- /091. Implementa una aplicación de chat en tiempo real con Spring Boot y WebSocket/spring-websockets-chat/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/091. Implementa una aplicación de chat en tiempo real con Spring Boot y WebSocket/spring-websockets-chat/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /091. Implementa una aplicación de chat en tiempo real con Spring Boot y WebSocket/spring-websockets-chat/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Spring WebSockets: Chat App -------------------------------------------------------------------------------- /091. Implementa una aplicación de chat en tiempo real con Spring Boot y WebSocket/spring-websockets-chat/src/main/java/com/example/dto/ChatMessage.java: -------------------------------------------------------------------------------- 1 | package com.example.dto; 2 | 3 | public record ChatMessage(String username, String body) { 4 | } 5 | 6 | -------------------------------------------------------------------------------- /091. Implementa una aplicación de chat en tiempo real con Spring Boot y WebSocket/spring-websockets-chat/src/main/java/com/example/dto/JoinMessage.java: -------------------------------------------------------------------------------- 1 | package com.example.dto; 2 | 3 | public record JoinMessage(String username) { 4 | } 5 | 6 | -------------------------------------------------------------------------------- /091. Implementa una aplicación de chat en tiempo real con Spring Boot y WebSocket/spring-websockets-chat/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /091. Implementa una aplicación de chat en tiempo real con Spring Boot y WebSocket/spring-websockets-chat/src/main/resources/static/main.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/091. Implementa una aplicación de chat en tiempo real con Spring Boot y WebSocket/spring-websockets-chat/src/main/resources/static/main.css -------------------------------------------------------------------------------- /092. Implementa una API REST segura con Spring Boot y Keycloak/spring-security-keycloak/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/092. Implementa una API REST segura con Spring Boot y Keycloak/spring-security-keycloak/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /092. Implementa una API REST segura con Spring Boot y Keycloak/spring-security-keycloak/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar 3 | -------------------------------------------------------------------------------- /092. Implementa una API REST segura con Spring Boot y Keycloak/spring-security-keycloak/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | keycloak.auth-server-url=http://localhost:8090 2 | keycloak.realm=realm1 3 | keycloak.resource=client1 4 | keycloak.public-client=true 5 | keycloak.principal-attribute=preferred_username 6 | -------------------------------------------------------------------------------- /093. Implementa la seguridad de tu API REST con Spring Boot, OAuth2 y Keycloak/spring-security-oauth-keycloak/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/093. Implementa la seguridad de tu API REST con Spring Boot, OAuth2 y Keycloak/spring-security-oauth-keycloak/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /094. Implementa la seguridad de tu API REST con Spring Boot, OAuth2 y Okta/spring-oauth-okta/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/094. Implementa la seguridad de tu API REST con Spring Boot, OAuth2 y Okta/spring-oauth-okta/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /094. Implementa la seguridad de tu API REST con Spring Boot, OAuth2 y Okta/spring-oauth-okta/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar 3 | -------------------------------------------------------------------------------- /095. Utiliza SpEL para manejar la seguridad a nivel de método de tu API REST con Spring Boot/spring-security-spel/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/095. Utiliza SpEL para manejar la seguridad a nivel de método de tu API REST con Spring Boot/spring-security-spel/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /095. Utiliza SpEL para manejar la seguridad a nivel de método de tu API REST con Spring Boot/spring-security-spel/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Spring Security: expresiones SpEL -------------------------------------------------------------------------------- /095. Utiliza SpEL para manejar la seguridad a nivel de método de tu API REST con Spring Boot/spring-security-spel/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /096. Autenticación X.509 con Spring Security/spring-mtls/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Spring: mutual TLS con certificados -------------------------------------------------------------------------------- /096. Autenticación X.509 con Spring Security/spring-mtls/server1/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/096. Autenticación X.509 con Spring Security/spring-mtls/server1/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /096. Autenticación X.509 con Spring Security/spring-mtls/server1/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar 3 | -------------------------------------------------------------------------------- /096. Autenticación X.509 con Spring Security/spring-mtls/server1/src/main/resources/s1_ks.p12: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/096. Autenticación X.509 con Spring Security/spring-mtls/server1/src/main/resources/s1_ks.p12 -------------------------------------------------------------------------------- /096. Autenticación X.509 con Spring Security/spring-mtls/server1/src/main/resources/s1_ts.p12: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/096. Autenticación X.509 con Spring Security/spring-mtls/server1/src/main/resources/s1_ts.p12 -------------------------------------------------------------------------------- /096. Autenticación X.509 con Spring Security/spring-mtls/server2/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/096. Autenticación X.509 con Spring Security/spring-mtls/server2/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /096. Autenticación X.509 con Spring Security/spring-mtls/server2/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar 3 | -------------------------------------------------------------------------------- /096. Autenticación X.509 con Spring Security/spring-mtls/server2/src/main/resources/s2_ks.p12: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/096. Autenticación X.509 con Spring Security/spring-mtls/server2/src/main/resources/s2_ks.p12 -------------------------------------------------------------------------------- /096. Autenticación X.509 con Spring Security/spring-mtls/server2/src/main/resources/s2_ts.p12: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/096. Autenticación X.509 con Spring Security/spring-mtls/server2/src/main/resources/s2_ts.p12 -------------------------------------------------------------------------------- /097. Ejecuta tu aplicación Spring Boot con imágenes nativas de GraalVM/spring-native/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/097. Ejecuta tu aplicación Spring Boot con imágenes nativas de GraalVM/spring-native/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /097. Ejecuta tu aplicación Spring Boot con imágenes nativas de GraalVM/spring-native/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar 3 | -------------------------------------------------------------------------------- /097. Ejecuta tu aplicación Spring Boot con imágenes nativas de GraalVM/spring-native/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM eclipse-temurin:17-jammy 2 | ARG JAR_FILE=target/*.jar 3 | COPY ${JAR_FILE} app.jar 4 | ENTRYPOINT ["java","-jar","/app.jar"] 5 | # docker build -t springapp:1.0 . 6 | # docker run --name springapp -p 8080:8080 springapp:1.0 -------------------------------------------------------------------------------- /097. Ejecuta tu aplicación Spring Boot con imágenes nativas de GraalVM/spring-native/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /098. Despliega tus microservicios con Spring Cloud Azure/spring-cloud-azure/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Spring Cloud: Azure Toolkit for IntelliJ IDEA -------------------------------------------------------------------------------- /098. Despliega tus microservicios con Spring Cloud Azure/spring-cloud-azure/app1/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/098. Despliega tus microservicios con Spring Cloud Azure/spring-cloud-azure/app1/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /098. Despliega tus microservicios con Spring Cloud Azure/spring-cloud-azure/app1/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar 3 | -------------------------------------------------------------------------------- /098. Despliega tus microservicios con Spring Cloud Azure/spring-cloud-azure/app1/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /098. Despliega tus microservicios con Spring Cloud Azure/spring-cloud-azure/app2/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/098. Despliega tus microservicios con Spring Cloud Azure/spring-cloud-azure/app2/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /098. Despliega tus microservicios con Spring Cloud Azure/spring-cloud-azure/app2/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar 3 | -------------------------------------------------------------------------------- /098. Despliega tus microservicios con Spring Cloud Azure/spring-cloud-azure/app2/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /099. Despliega tus microservicios con Spring Cloud Kubernetes/spring-cloud-kubernetes/app1/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/099. Despliega tus microservicios con Spring Cloud Kubernetes/spring-cloud-kubernetes/app1/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /099. Despliega tus microservicios con Spring Cloud Kubernetes/spring-cloud-kubernetes/app1/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar 3 | -------------------------------------------------------------------------------- /099. Despliega tus microservicios con Spring Cloud Kubernetes/spring-cloud-kubernetes/app1/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM eclipse-temurin:17-jre 2 | COPY target/*.jar app.jar 3 | ENTRYPOINT ["java","-jar","/app.jar"] -------------------------------------------------------------------------------- /099. Despliega tus microservicios con Spring Cloud Kubernetes/spring-cloud-kubernetes/app1/deployment-config.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: ConfigMap 3 | metadata: 4 | name: app1 5 | data: 6 | application.properties: |- 7 | bean.message1=Hello1 from ConfigMap 8 | bean.message2=Hello2 from ConfigMap -------------------------------------------------------------------------------- /100. Spring Cloud Stream/spring-cloud-stream-processor/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/100. Spring Cloud Stream/spring-cloud-stream-processor/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /100. Spring Cloud Stream/spring-cloud-stream-processor/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar 3 | -------------------------------------------------------------------------------- /100. Spring Cloud Stream/spring-cloud-stream-processor/README.md: -------------------------------------------------------------------------------- 1 | # Spring Cloud Stream Processor con Apache Kafka -------------------------------------------------------------------------------- /101. Spring Cloud Data Flow/batchsamples/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.1/apache-maven-3.6.1-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar 3 | -------------------------------------------------------------------------------- /101. Spring Cloud Data Flow/batchsamples/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Spring Cloud Data Flow -------------------------------------------------------------------------------- /101. Spring Cloud Data Flow/batchsamples/billrun/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.0/apache-maven-3.6.0-bin.zip 2 | -------------------------------------------------------------------------------- /101. Spring Cloud Data Flow/batchsamples/billrun/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | logging.level.org.springframework.cloud.task=debug 2 | spring.datasource.initialization-mode=always 3 | spring.batch.initialize-schema=always 4 | spring.application.name=Bill Run 5 | -------------------------------------------------------------------------------- /101. Spring Cloud Data Flow/batchsamples/billrun/src/main/resources/schema.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE IF NOT EXISTS BILL_STATEMENTS 2 | ( 3 | id int, 4 | first_name varchar(50), 5 | last_name varchar(50), 6 | minutes int, 7 | data_usage int, 8 | bill_amount decimal(10,2) 9 | ); -------------------------------------------------------------------------------- /101. Spring Cloud Data Flow/batchsamples/billsetuptask/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.0/apache-maven-3.6.0-bin.zip 2 | -------------------------------------------------------------------------------- /101. Spring Cloud Data Flow/batchsamples/billsetuptask/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | logging.level.org.springframework.cloud.task=debug 2 | spring.application.name=Bill Setup Task 3 | -------------------------------------------------------------------------------- /102. Spring Cloud Function/spring-cloud-function/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/102. Spring Cloud Function/spring-cloud-function/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /102. Spring Cloud Function/spring-cloud-function/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar 3 | -------------------------------------------------------------------------------- /102. Spring Cloud Function/spring-cloud-function/README.md: -------------------------------------------------------------------------------- 1 | # Spring Cloud Function con AWS 2 | 3 | Handler para AWS Lambda: 4 | 5 | org.springframework.cloud.function.adapter.aws.FunctionInvoker::handleRequest -------------------------------------------------------------------------------- /102. Spring Cloud Function/spring-cloud-function/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.cloud.function.definition=reverse -------------------------------------------------------------------------------- /103. Ecommerce/ecommerce/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/103. Ecommerce/ecommerce/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /103. Ecommerce/ecommerce/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar 3 | -------------------------------------------------------------------------------- /103. Ecommerce/ecommerce/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Creando una aplicación de e-commerce con Spring -------------------------------------------------------------------------------- /103. Ecommerce/ecommerce/src/main/java/com/example/model/UserAuthority.java: -------------------------------------------------------------------------------- 1 | package com.example.model; 2 | 3 | public enum UserAuthority { 4 | ADMIN, USER 5 | } 6 | -------------------------------------------------------------------------------- /103. Ecommerce/ecommerce/src/test/java/com/example/AppTests.java: -------------------------------------------------------------------------------- 1 | package com.example; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | @SpringBootTest 6 | class AppTests { 7 | 8 | @Test 9 | void contextLoads() { 10 | 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /103. Ecommerce/ecommerce/uploads/1671734489664_bookstore.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/103. Ecommerce/ecommerce/uploads/1671734489664_bookstore.png -------------------------------------------------------------------------------- /103. Ecommerce/ecommerce/uploads/1671734614359_bookstore.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/103. Ecommerce/ecommerce/uploads/1671734614359_bookstore.png -------------------------------------------------------------------------------- /103. Ecommerce/ecommerce/uploads/1671734684304_bookstore.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/103. Ecommerce/ecommerce/uploads/1671734684304_bookstore.png -------------------------------------------------------------------------------- /103. Ecommerce/spring-c09-web-flights/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/certidevs/spring/c35f158bd89184c1ee5f6a33378008010790737b/103. Ecommerce/spring-c09-web-flights/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /103. Ecommerce/spring-c09-web-flights/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar 3 | -------------------------------------------------------------------------------- /103. Ecommerce/spring-c09-web-flights/README.md: -------------------------------------------------------------------------------- 1 | # Aplicación vuelos 2 | 3 | Ejemplo de aplicación Spring Boot con: 4 | 5 | * Controladores MVC 6 | * Thymeleaf 7 | * Seguridad 8 | * Subida de archivos -------------------------------------------------------------------------------- /103. Ecommerce/spring-c09-web-flights/src/main/java/com/example/exceptions/InsufficientBalanceException.java: -------------------------------------------------------------------------------- 1 | package com.example.exceptions; 2 | 3 | public class InsufficientBalanceException extends RuntimeException { 4 | } 5 | -------------------------------------------------------------------------------- /103. Ecommerce/spring-c09-web-flights/src/main/java/com/example/exceptions/TicketAlreadyPurchasedException.java: -------------------------------------------------------------------------------- 1 | package com.example.exceptions; 2 | 3 | public class TicketAlreadyPurchasedException extends RuntimeException { 4 | } 5 | -------------------------------------------------------------------------------- /103. Ecommerce/spring-c09-web-flights/src/main/java/com/example/services/PassengerService.java: -------------------------------------------------------------------------------- 1 | package com.example.services; 2 | 3 | import com.example.entities.Passenger; 4 | 5 | import java.util.List; 6 | 7 | public interface PassengerService { 8 | List findAll(); 9 | Passenger save(Passenger passenger); 10 | } 11 | -------------------------------------------------------------------------------- /103. Ecommerce/spring-c09-web-flights/src/main/resources/static/css/styles.css: -------------------------------------------------------------------------------- 1 | .dataTables_length { 2 | text-align: left; 3 | } --------------------------------------------------------------------------------