Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Migration to Spring Boot 3 & Angular 15 #9

Open
wants to merge 5 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"java.compile.nullAnalysis.mode": "automatic",
"java.configuration.updateBuildConfiguration": "automatic"
}
19 changes: 11 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,21 +1,24 @@
# Full Reactive Stack [![Build Status](https://travis-ci.org/mechero/full-reactive-stack.svg?branch=master)](https://travis-ci.org/mechero/full-reactive-stack)

This repository contains backend and frontend projects that make use of **Reactive Web** patterns,
as explained in the mini book [Full Reactive Stack with Spring Boot 2, WebFlux, MongoDB and Angular](https://leanpub.com/full-reactive) and also in the [Full Reactive Stack series of posts](https://thepracticaldeveloper.com/full-reactive-stack).
This repository contains a sample application, to show Full Stack Reactive capabilities, with a Spring Boot 3 WebFlux backend and a Angular 15 frontend.

![Full Reactive Stack Overview](resources/reactive-stack-logical.png)
On the `master` branch you will find a basic comparison between blocking & reactive requests (with both blocking / reactive controllers, repositories alternatives).
On the `reactive-quotes-creation-refresh` you will discover how to keep listening for new data coming from the server, making the app fully reactive using *Spring Events*, *FluxSink* *ServerSentEvent*s.

This repository originally comes from https://github.com/mechero/full-reactive-stack/ and was adapted for current versions and expanded to show more reactive features. This original repository linked to a mini book [Full Reactive Stack with Spring Boot 2, WebFlux, MongoDB and Angular](https://leanpub.com/full-reactive) and also [Full Reactive Stack series of posts](https://thepracticaldeveloper.com/full-reactive-stack).

## Get the mini-book
This fork does not use a MongoDB anymore but rather a H2 database, to show how to link with a relational database using [Spring Data R2DBC](https://docs.spring.io/spring-data/r2dbc/docs/current-SNAPSHOT/reference/html).

You can get a copy of the guide on LeanPub: [Full Reactive Stack with Spring Boot 2, WebFlux, MongoDB and Angular](https://leanpub.com/full-reactive).
The original schema:
![Full Reactive Stack Overview](resources/reactive-stack-logical.png)

## Components

### Spring Boot Reactive Web

A Spring Boot 2.3 application that retrieves data using **Spring Reactive Web (WebFlux)**, instead of using the standard Web MVC framework. It connects to a MongoDB database in a reactive way too.
A Spring Boot 3 application that retrieves data using **Spring Reactive Web (WebFlux)**, instead of using the standard Web MVC framework. It connects to a H2 database in a reactive way using using [Spring Data R2DBC](https://docs.spring.io/spring-data/r2dbc/docs/current-SNAPSHOT/reference/html).

Check [this blog post](https://thepracticaldeveloper.com/2017/11/04/full-reactive-stack-with-spring-webflux-and-angularjs/) for a short version of the guide's full chapter.
Check [this blog post](https://thepracticaldeveloper.com/2017/11/04/full-reactive-stack-with-spring-webflux-and-angularjs/) for a short version of the original guide.

### Angular Reactive

Expand All @@ -25,7 +28,7 @@ A simple Angular application consumes the controller on the backend side using a

### Docker

The docker folder contains a `docker-compose` file that runs the Mongo database, the backend application and the Angular application. It also contains a simplified version, `docker-compose-mongo-only.yml`, which runs only the MongoDB instance. This is useful in case you want to run the applications without docker (e.g. from your IDE).
The docker folder contains a `docker-compose` file that runs containers.

## Running the applications with Docker

Expand Down
1 change: 1 addition & 0 deletions angular-reactive/.gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# See http://help.github.com/ignore-files/ for more about ignoring files.
/.angular/

# compiled output
/dist
Expand Down
2 changes: 1 addition & 1 deletion angular-reactive/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# AngularReactive

This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 9.1.8.
This project was generated with [Angular CLI](https://github.com/angular/angular-cli)

## Development server

Expand Down
Loading