Spring Boot and React with Test Driven Development
What you'll learn
- Practice Test Driven Development in a complete project from beginning to the end.
- How to test your java projects with JUnit.
- How to use React Testing Library with React tests. Handling user actions and querying the tree items.
- How to mock external dependencies in testing.
- Create a fully functional application with Spring Boot.
- Learn how to build a RestFul API.
- Secure Spring application with Spring Security. Practice method level security.
- Practice Spring Data with custom query methods, pagination and specification.
- Learn how to run application in different environment profiles with different configurations.
- Serve static files.
- How to handle exceptions and create default custom error object model in spring application.
- JPA Entity relationships, @OneToOne, @OneToMany..
- Built in Validation and custom validations. Validating file type.
- Supporting internationalization, i18n, and responding user based on their locale when validation errors are occuring.
- Scheduled tasks with spring.
- Create a fully functional frontend application with React.
- Learn all the different component types in React. Class, functional.
- Practice lifecycle methods of class components.
- Convert class components to functionals and using Hooks.
- Create our own hook.
- Use React Router for building single page application.
- Global state management with Redux.
- Create reusable components
- Feel how the test driven development is giving confidence when refactoring our application.
- You will feel the freedom to apply any implementation you want when you cover your application behavior with tests.
This course is purely built on practice. And it's built on three main topic. Spring Boot, React and Test Driven Development.
After completing this course you'll be able to see the use cases of these frameworks and why they are so popular, and also you'll experience the power of test driven development methodology. We will do refactoring a lot, and nothing will be broken. Because our tests will be confirming the application is behaving as it's supposed to be.
We will be building a real life application. Each code piece we write, will be for our actual application implementation.
In each section we will gradually build our application. We will not jump ahead and add functionality not needed for that moment. We will implement one requirement at a time. Each implementation will bring the next requirement to us. And following this path will help us to feel and understand what are the frameworks doing and how they are easing application development.
We will see various practices about
how we can build a restful web service with spring boot with all necessary functionalities like validation, internationalization (i18n), static resource serving, caching, json manipulation
how we can handle database operations with spring data
how we can secure our application with spring security
how we can build a single page application (spa) with react
what is redux and how we can use it
how we can use react router
how we can replace class components with functional components by using hooks
and we will see
how test driven development (tdd) works.
how it's affecting our code quality, reusability
how it's giving us the confidence about refactoring our implementation
because of the tests we have for our components, we will easily convert our components from class to function. And we will use hooks and tests will make sure nothing will be broken after that changes.
The course is up to date with the latest Spring Boot version 2.5 and React 17
Who this course is for:
- Developers who are interested in Fullstack Web Application Development with Spring and React
- Developer who wants to see Test Driven Development in action
I have experience on
• Java / Java EE specifications JAX-RS (Jersey), JPA (Hibernate)
• Spring Framework (Spring Boot, Security, Data)
• Spring Cloud components & microservices frameworks, messaging bus (RabbitMQ)
I've been teaching Spring Boot, React and Test Driven Development to newly graduate engineers and interns either in class environment or one on one.