In this repo, you will find a bunch of useful code examples and patterns.
There are five branches in this repo:
- master - contains initial Spring 4 project with the working Chat application, integrated with Gitter Channel.
- reactive - include completed migration to Spring 5 with the adaptation of blocking JDBC driver + integration with Server-Sent Event.
- reactive+ws - include completed migration to Spring 5 with adaptation of blocking JDBC driver + integration with reactive WebSockets.
- template - includes the template for migration to Reactive Spring 5 with Blocking Database adaptation. This repo prepared to code and contained the list of TODOs and FIXMEs. It will be useful if you would like to start coding with Spring 5 and learn essentials of Reactive Programming with Project Reactor. If you are not familiar with Reactor 3 or RxJava, please take a look on one of those useful tutorials, and practice your self with the next codding tutorial.
- migration-commit-machine - commit by commit migration to Reactive Spring 5 + Non-blocking, reactive DB (MongoDB in that case).
This project is based on the typical layered architecture. It includes four main folders:
- controller - include list of endpoint for client-server communication purpose
- services - include conceptual business logic:
- Integration with Gitter Service
- Statistic service
- Messaging service for transferring messages from Gitter service through the server, store messages in the database, etc.
- repository - Spring Data repositories for data-access purpose
- domain - database structure representation in Java classes.
You are free to create an issue if you found one in the project.