{"id":15069024,"url":"https://github.com/autokmg/spring-mvc-practices","last_synced_at":"2026-02-01T02:32:17.771Z","repository":{"id":200764111,"uuid":"706111604","full_name":"AutoKMG/spring-mvc-practices","owner":"AutoKMG","description":"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.","archived":false,"fork":false,"pushed_at":"2023-10-24T20:34:06.000Z","size":73,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-22T21:32:36.774Z","etag":null,"topics":["java-11","spring-cloud-stream","spring-kafka","spring-mvc","spring-rabbitmq","spring-thymeleaf","spring-websocket"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AutoKMG.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-10-17T10:23:18.000Z","updated_at":"2023-10-26T13:50:41.000Z","dependencies_parsed_at":"2023-10-24T21:30:44.914Z","dependency_job_id":null,"html_url":"https://github.com/AutoKMG/spring-mvc-practices","commit_stats":null,"previous_names":["autokmg/aircraft-positions","autokmg/spring-mvc-practices"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AutoKMG%2Fspring-mvc-practices","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AutoKMG%2Fspring-mvc-practices/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AutoKMG%2Fspring-mvc-practices/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AutoKMG%2Fspring-mvc-practices/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AutoKMG","download_url":"https://codeload.github.com/AutoKMG/spring-mvc-practices/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243848982,"owners_count":20357685,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["java-11","spring-cloud-stream","spring-kafka","spring-mvc","spring-rabbitmq","spring-thymeleaf","spring-websocket"],"created_at":"2024-09-25T01:40:05.017Z","updated_at":"2026-02-01T02:32:17.744Z","avatar_url":"https://github.com/AutoKMG.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"**\n\n# Springing into Action: Evolving Interactions with Thymeleaf, RabbitMQ, and WebSockets in Spring Boot\n\nIn 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. \n\nFor my first project iteration, I showcased a Thymeleaf-driven application that retrieved and displayed aircraft positions in a pull-based model. \n\nSubsequently, 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.\n\nIn 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.\n\n**","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fautokmg%2Fspring-mvc-practices","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fautokmg%2Fspring-mvc-practices","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fautokmg%2Fspring-mvc-practices/lists"}