The Firebase Realtime Database is a cloud-hosted NoSQL database that lets you store and sync data between your users in realtime. In the tutorial, I introduce how to build an “Reactjs CRUD Firebase Realtime Database Example ” project to do CRUD operation: POST/GET/PUT/DELETE requests with step by step coding examples.
– I draw a fullstack overview diagram architecture from Reactjs frontend to Firebase Realtime Database.
– I illustrate details about react-firebase CRUD operations.
– I implement Reactjs application to do CRUD request (Post/Get/Put/Delete) to Firebase Realtime database.
Tutorial: ” Reactjs JWT Token Authentication Example – Reactjs Login Authentication Example ”
JSON Web Token (JWT) is an open standard (RFC 7519) that defines a compact and self-contained way for securely transmitting information between parties as a JSON object. So in the tutorial, I introduce how to implement an application “Reactjs JWT token Authentication Example – Reactjs Login Authentication Example ” with details step by step and 100% running sourcecode.
– I give you an Epic of the application, a fullstack excutive flow from frontend to backend with overall architecture diagram.
– I give you a layer diagram of Reactjs JWT Application.
– I give you an implementatin of security backend sourcecode (SpringBoot + Nodejs JWT RestAPIs).
– I guide you step by step how to develop a Reactjs JWT Authentication application.
– Finally, I do an integrative testing from Reactjs JWT Authentication application to Backend Security RestAPIs
Django is a Python-based free and open-source web framework that follows the model-template-view architectural pattern. Angular is a TypeScript-based open-source web application framework led by the Angular Team at Google. In the tutorial, I introduce how to build a Angular Django CRUD RestAPIs Fullstack Project with POST/GET/PUT/DELETE requests using Django Rest Framework and MySQL database with step by step coding examples.
Tutorial: “Spring Boot Pagination and Filter Sorting Example | Spring RestAPIs + Spring JPA using Pageable & Sort object requests”
When we have a large dataset and we want to present it to the user in smaller chunks, pagination and sorting is often helpful solution. So in the tutorial, I introduce how to build “Spring Boot Pagination and Filter Sorting Example” use Spring JPA APIs of PagingAndSortingRepository to do the task with SpringBoot project example.
“How to implement Angular 10 + Nodejs JWT Token Based Authentication with MySQL Example?” is always a big common question in development world? So in the tutorial, I guide you very clearly how to build a full stack example to demonstrate an JWT Authentication flow from Angular (signup & signin with by JWT Token) to backend: Nodejs and database MySQL.
“How to build SpringBoot Token Based Authentication Example?” is one of the most common questions for Java development world. So in the tutorial, I will introduce how to build it with clearly architecture and coding examples.
Topic exchange is powerful and can behave like other exchanges. In the tutorial, I show you how to build an example “RabbitMQ Topic Exchange Spring Boot Example” with github sourcecode.
* Technologies:
– Java 8
– Maven
– Spring Tool Suite
– Spring Boot
– RabbitMQ
RabbitMQ Topic Exchange
routing_key of messages sent to a topic exchange must be a list of words, delimited by dots, example:
– #.error
– *.prod.*
– sys.#
Note: * (star) must be an exactly one word. # (hash) can be zero or more words.
Springboot RabbitMQ Topic Exchange Architecture
With the above topic exchange design,
– when we send a message with routing key: sys.dev.info, it will just be delivered to Q1.
– when we send a message with routing key: app.prod.error, it will just be delivered to Q2.
– when we send a message with routing key: sys.test.error, it will be delivered to both queues {Q1, Q2}.
Topic exchange is strong tool and it can act as other exchanges as below:
– When a queue is bound with “#” (hash) binding key – it is as an fanout exchange.
– When don’t use * & # in bindings, it will behave as a direct exchange.
Practices – RabbitMQ Topic Exchange Spring Boot Example
In the tutorial, we create 2 SpringBoot project as below:
Springboot RabbitMQ Topic Project Structures
* Step to do:
– Create SpringBoot projects
– Define data model
– Implement RabbitMq Producer
– Implement RabbitMq consumer
– Run and check results
Create SpringBoot Projects
Using SpringToolSuite, create 2 SpringBoot projects, then add need dependency spring-boot-starter-amqp:
– Tutorial “Rabbitmq Publish/Subscribe Java Example with SpringBoot”
In the tutorial, I guide how to create Spring RabbitMq Publish/Subcribe pattern by using fanout exchanges of RabbitMQ and SpringBoot.
Spring RabbitMq Publish/Subcribe pattern – RabbitMQ Publish/Subscribe Java Example + SpringBoot
We create a Publisher, and 3 Subcribers and using fanout exchanges of RabbitMQ for create a Publish/Subcribe Pattern System:
Spring RabbitMQ Publish Subscribe Pattern Architechture
* Flow messages:
– Publisher will send messages to the fanout exchange.
– The fanout exchange routes messages to all of the queues that are bound to it and the routing key is ignored.
– Subcribers instances recieves messages from the queues.
Practice – Rabbitmq Publish/Subscribe Java Example + SpringBoot
* Technologies:
– Java 8
– Maven 3.6.1
– Spring Tool Suite
– Spring Boot
– RabbitMQ
We create 2 SpringBoot projects {Publisher, Subcriber}:
Spring RabbitMQ Publish Subscribe Pattern Project Structures
* Step to do:
– Create SpringBoot projects
– Create Publiser/Subcriber
– Setup RabbitMQ exchange, queues
– Run and check results
Create SpringBoot projects – RabbitMQ Publish/Subscribe Java Example + SpringBoot
Using Spring Tool Suite, create 2 Spring Starter Projects then add amqp dependency for both of them:
– Tutorial: “Spring Boot Rabbitmq Multiple Consumers Example using RabbitMq Exchange to Exchange Topology – Spring Boot Rabbitmq Multiple Listeners”
In the post, I show you how to work with SpringBoot RabbitMq Exchange to Exchange Topology to develop an example “Rabbitmq Multiple Queues and Multiple Listeners”.
* Technologies:
– Java 8
– Maven
– Spring Tool Suite
– Spring Boot
– RabbitMq
RabbitMq Exchange to Exchange – Spring Boot Rabbitmq Multiple Consumers Example
We create a RabbitMQ topology with 2 topic exchanges and 3 binding queues:
Spring Boot Rabbitmq Multiple Queue – with Exchange Topic Architecture
Scenarios with above design:
– when we send a message with routing key: sys.prod.info, it will be delivered by path: X1 -> Q3.
– when we send a message with routing key: app.prod.error, it will be delivered by path: X1 -> X2 -> {Q2, Q3}.
– when we send a message with routing key: sys.test.error, it will be delivered by path: X1 -> X2 -> Q1.
Practices – Spring Boot Rabbitmq Multiple Consumers Example
In the tutorial, we create 2 SpringBoot project as below:
Spring Boot RabbitMQ Topic – Project Structure
– Step to do:
– Create SpringBoot projects
– Define data model
– Implement RabbitMq Producer
– Implement RabbitMq consumer
– Run and check results
Create SpringBoot projects
Using SpringToolSuite, create 2 SpringBoot projects, then add need dependency spring-boot-starter-amqp:
package com.loizenjava.rabbitmq.consumer;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Component;
import com.loizenjava.rabbitmq.model.Log;
@Component
public class Consumer {
@RabbitListener(queues="${jsa.rabbitmq.queue}", containerFactory="jsaFactory")
public void recievedMessage(Log logs) {
System.out.println("Recieved Message: " + logs);
}
}
Run and Check Results – Spring Boot Rabbitmq Multiple Consumers Example
– Setup RabbitMq exchange, queues:
Enable rabbitmq_management by cmd: rabbitmq-plugins enable rabbitmq_management --online. Then go to: http://localhost:15672 -> login with user/password: guest/guest.
– Add RabbitMQ exchanges:
Go to http://localhost:15672/#/exchanges, add 2 exchanges: {jsa.exchange.logs, jsa.exchange.logs.error}.
Spring Boot RabbitMQ Topic Connection
– Add RabbitMQ Queue:
Go to http://localhost:15672/#/queues, add 3 queues: {jsa.queue.logs.application-error, jsa.queue.logs.system-error, jsa.queue.logs.production}.
– Run SpringBoot-RabbitMQ-Consumer which listen to jsa.queue.logs.system-error queue with configuration:
jsa.rabbitmq.queue=jsa.queue.logs.system-error:
-> Console’s logs:
Recieved Message: {content = 2017-10-10 10:57:51.10 ERROR in [email protected]:71 - no applicable action for [springProperty], current ElementPath is [[configuration][springProperty]], routingKey = sys.test.error}
– Run SpringBoot-RabbitMQ-Consumer which listen to jsa.queue.logs.production queue with configuration: