
Compare monolithic applications with microservices by highlighting a single-unit architecture, a single database, and dependencies in one configuration file, then explore independent services with own databases and load balancing.
Set up server-side infrastructure by installing MySQL with background services, using HeidiSQL for database work, configuring IntelliJ with Java 8, and noting alternative Java versions.
Install and configure lombok for the server side, enabling annotation processing to reduce boilerplate getter and setter methods.
Design a user service architecture with CRUD operations and security using Spring Boot, MVC structure, REST controllers, Hibernate ORM on MySQL, Liquibase migrations, Lombok, and Gradle.
Explore how Hibernate maps Java objects to database tables using entity, table, column, id, and generatedvalue annotations, and manage entity relations with eager and lazy fetch strategies.
Implement a Spring user controller with @RestController, inject UserService, and expose registration, login, and names endpoints using ResponseEntity, with conflict handling for duplicate usernames and a default user role.
Configure Spring web security with WebSecurityConfig to enable CORS, permit resources, error, and service paths, authenticate the rest, and set up a UserDetailsService with bcrypt while disabling CSRF.
Configure application.properties to set the port, set registerWithEureka to false, enable eureka.client.fetchRegistry: true, and enable the Eureka server in the main class so other services can connect.
Create a new model class in a model package as a database entity, define id (auto incremented), orders, category, and published fields, and implement equals and hashCode methods.
Implement a course controller using dependency injection and autowiring, with api methods to get user transactions and to retrieve all courses via get mappings.
Create a unique client for the course service, configure local zone and instance with lease and expiry settings, and enable a Eureka discovery client to list all service instances.
Start and test the Zuul gateway service, then run the dependent microservices in dependency order, including the user service.
Build a client-side UI for microservices, consuming data via API calls to support login, registration, profile, course listing, enrollment, and course details.
Install and scaffold an Angular 8 client app with the Angular CLI, Bootstrap, and essential components—login, register, profile, course, and home pages—plus user and core services to consume microservices.
Define and configure angular routers for an app, mapping default, login, register, profile, and detail pages, and pass parameters via routes.
Create a user model class on the client side in Angular, defining user fields and a role field within a model package for reuse across microservices.
Develop a base model class for courses and transactions in the model package, define key fields with defaults, and implement a lowercase naming approach before extending to the transaction model.
Implement a user service in angular, calling REST API endpoints for get, post, login, logout, and register, maintaining current user via a behavior subject and local storage, secured through gateway.
Implement a login page in angular 8 by binding a user model to login form and calling user and authentication services, then navigate to profile page after a session check.
Implement a navigation bar on the template page that toggles between login and register links and profile with current user name based on the user service observable.
In this course, we will learn microservices with using Spring Boot and Spring Cloud. To create it, we will implement eveything step by step from initial to finalize so everything will be so clear. Also, we try to look into every detail of code. Of course, we can miss some points of them but in that case, you know that all time you can ask your questions from Q&A section or from direct message. All questions and messages will be answered.
Our application goes on with two main components. These are server side and client side.
On server side, the main core thing will be Spring Boot and Spring Cloud. We will implement microservices with using these two libraries. Also, we will use these libraries on microservices;
First one is Spring Boot Web; Because we will use Model View Controller structure on our service.
Second one is Spring Security; Because we will implement secure login.
The other one is Java Persistence Api; Because we will use Object relational mapping.
The other one is Rest Repositories; Because we will use JPA and CRUD repository.
The other one is Liquibase; Because we will use it for database migration.
The other one is MySQL; Because we will use it for database.
The other one is Eureka Discovery; Because we will use it for communication with other services.
Last one is Lombok; Because we will use it for clean code.
On client side, we will use angular 8. We will create a course management sytem on front end. Also, we will implement it step by step.