Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/autokmg/spring-mvc-practices
Crafting a Spring Boot Application for In-Depth Exploration of Spring MVC, Thymeleaf Template Engine, H2 Database, Lombok, and Messaging Systems like Kafka and RabbitMQ. Plus, Dive into WebSockets for Interactive Features.
https://github.com/autokmg/spring-mvc-practices
java-11 spring-cloud-stream spring-kafka spring-mvc spring-rabbitmq spring-thymeleaf spring-websocket
Last synced: 19 days ago
JSON representation
Crafting a Spring Boot Application for In-Depth Exploration of Spring MVC, Thymeleaf Template Engine, H2 Database, Lombok, and Messaging Systems like Kafka and RabbitMQ. Plus, Dive into WebSockets for Interactive Features.
- Host: GitHub
- URL: https://github.com/autokmg/spring-mvc-practices
- Owner: AutoKMG
- Created: 2023-10-17T10:23:18.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2023-10-24T20:34:06.000Z (over 1 year ago)
- Last Synced: 2024-11-22T09:05:19.008Z (3 months ago)
- Topics: java-11, spring-cloud-stream, spring-kafka, spring-mvc, spring-rabbitmq, spring-thymeleaf, spring-websocket
- Language: Java
- Homepage:
- Size: 71.3 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
**
# Springing into Action: Evolving Interactions with Thymeleaf, RabbitMQ, and WebSockets in Spring Boot
In this repository, I delved into the realm of application interaction and the crucial need for efficient means of communication. I introduced view technologies, such as Thymeleaf, and the engines that process them, illustrating how Spring Boot utilizes them to create and deliver functionality to the end user's browser. I also explored Spring Boot's handling of static content, including standard HTML and JavaScript, which can be delivered directly without processing by template engines.
For my first project iteration, I showcased a Thymeleaf-driven application that retrieved and displayed aircraft positions in a pull-based model.
Subsequently, I harnessed the power of messaging platforms with Spring Boot, leveraging Spring Cloud Stream and RabbitMQ. I refactored the PlaneFinder application to push real-time aircraft positions to the Aircraft Positions app, making the backend functionality event-driven. Although the front end still required manual or hard-coded refreshes to update user-visible results.
In the final part, I implemented WebSocket connections and handler code within the backend and frontend components of the Aircraft Positions application. This setup allowed the Spring+Java backend app to push live aircraft position updates received via RabbitMQ without requiring user or browser-initiated requests. This highlighted the bidirectional nature of WebSockets, their lack of required request-response patterns, and their low communication overhead.
**