Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork463
Spring 5/6 Reactive playground
License
hantsy/spring-reactive-sample
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
This is a sandbox project for demonstratingReactive Streams support in Spring framework and Spring ecosystem.
I've also maintained a series of repos related to ReativeStreams and the latest Spring 5.
- Spring RSocket Sample
- Spring Kotlin Coroutines Example
- Spring Kotlin DSL/Spring Fu Sample
- Spring WebMvc Functional Example
- Angular and Spring Reactive Example
- Spring R2dbc Example(updates forSpring 5.3, Spring Data R2dbc 1.2 and Spring Boot 2.4)
The source codes are updated toSpring 6/Spring Boot 3.0, the Spring Boot 2.7.x based codes are available ina compressed archive and tagged withv1.0.
Read online:https://hantsy.github.io/spring-reactive-sample/
The following table list all sample codes related to the above posts.
| name | description |
|---|---|
| vanilla | The initial application, includes basicspring-webflux feature, use a main class to start up the application |
| vanilla-reactor-netty2 | Same asvanilla, but use Reactor Netty5 2.x as target runtime |
| vanilla-jetty | Same asvanilla, but use Jetty as target runtime |
| vanilla-tomcat | Same asvanilla, but use Reactor Netty as target runtime |
| vanilla-undertow | Same asvanilla, but use Undertow as target runtime |
| java8 | Java 8CompletableFuture and@Async example |
| java9 | Same asvanilla, Java 9 Flow API support is not ready in Spring 5.0.0.REALESE, planned in 5.0.1, see issueSPR-16052 and the originaldiscussion on stackoverflow |
| rxjava3 | Same asvanilla, but use Rxjava3 instead of Reactor, since Spring 5.3.0 |
| smallrye-mutiny | Same asvanilla, but useSmallRye Mutiny instead of Reactor, since Spring 5.3.10 |
| war | Replace the manual bootstrap class invanilla with SpringApplicationInitializer, it can be packaged as awar file to be deployed into an external servlet container. |
| routes | UseRouterFunction instead of controller invanilla |
| register-bean | Programmatic approach to register all beans inApplicatonContext at the application bootstrap |
| data-elasticsearch | Spring Data ElasticSearch Reactive example |
| data-neo4j | Spring Data Neo4j reactive example |
| data-mongo | Spring Data Mongo Reactive example |
| data-mongo-pageable | Spring Data Mongo Reactive example with pagination support |
| data-mongo-transaction | Spring Data Mongo Reactive example withTransaction support |
| data-redis | Spring Data Redis Reactive example |
| data-redis-message | Spring Data Redis Reactive Example withReactiveRedisMessageListenerContainer |
| data-cassandra | Spring Data Cassandra Reactive example |
| data-couchbase | Spring Data Couchbase Reactive example |
| security | Based onvanilla, add Spring Security Reactive support |
| security-form | Same as security, login form example |
| security-user-properties | Same as security, but useusers.properties to store users |
| security-method | Replace URI based configuration with method level constraints |
| security-data-mongo | Based ondata-mongo andsecurity, replace with dummy users in hard codes with Mongo driven store |
| multipart | Multipart request handling and file uploading |
| multipart-data-mongo | Multipart and file uploading, but data in Mongo via Spring Data Mongo ReactiveGridFsTemplate |
| mvc-thymeleaf | Traditional web application, use Thymeleaf as template engine |
| mvc-mustache | Traditional web application, use Mustache as template engine |
| mvc-freemarker | Traditional web application, use freemarker as template engine |
| sse | Server Send Event example |
| websocket | WebSocket example |
| websocket-reactor-netty2 | WebSocket example with Reactor Netty2 |
| web-filter | WebFilter example |
| groovy | Written in groovy |
| groovy-dsl | Groovy DSL bean definition example |
| client | Example ofWebClient to shake hands with backend reactive APIs |
| client-jetty | Example ofWebClient with Jetty Reactive HttpClient |
| client-reactor-netty2 | Example ofWebClient with Reactor Netty5 2.x HttpClient |
| client-jdk11-httpclient | Example ofWebClient with JDK 11 HttpClient |
| client-apache-httpclient5 | Example ofWebClient with Apache HttpClient5 |
| cache | Example of Cache Aync/Reactive support(with in-memoryConcurrentHashMap) |
| cache-caffeine | Example of Cache Aync/Reactive support with Caffeine |
| cache-redis | Example of Cache Aync/Reactive support with Redis |
| event | Application Event Reactive Example |
| kotlin | Written in kotlin |
| kotlin-co | Written in kotlin Coroutines |
| kotlin-routes | Use kotlin functional approach to declare beans and bootstrap the application programmatically |
| kotlin-dsl | Kotlin DSL bean definition example |
| schedule | Spring Schedule Reactive Example |
| session | Spring Session Example |
| session-header | Spring SessionWebSessionIdResolver Example |
| session-data-redis | Spring Data Redis basedReactiveSessionRepository Example |
| session-data-mongo | Spring Data Mongo basedReactiveSessionRepository Example |
| exception-handler | Exception Handler Example |
| integration | Spring Integration Example |
| integration-dsl | Spring Integration Java 8 DSL Example |
| restdocs | Spring RestDocs Example |
| name | description |
|---|---|
| boot-start | Spring Boot example, including 3 Maven profiles to switch to Jetty, Tomcat, Undertow as target runtime |
| boot-start-routes | SimpleRouterFunction example |
| boot-mvc-thymeleaf | Same as mvc-thymeleaf, but based on Spring Boot |
| boot-mvc-mustache | Same as mvc-mustache, but based on Spring Boot |
| boot-mvc-freemarker | Same as mvc-freemarker, but based on Spring Boot |
| boot-groovy | Written in Groovy |
| boot-kotlin | Written in Kotlin |
| boot-kotlin-co | Written in Kotlin Coroutines |
| boot-kotlin-dsl | Kotlin specificBeanDefinitionDSL andRouterFunctionDsl Example |
| boot-kotlin-co-dsl | Kotlin specificBeanDefinitionDSL,CoRouterFunctionDsl Example |
| boot-redis | Example of usingReactiveRedisConnection andRouterFunction |
| boot-data-redis | Spring Data Redis Example |
| boot-data-neo4j | Spring Data Neo4j example (Spring Boot 2.4) |
| boot-neo4j | Spring Data Neo4j usingReactiveNeo4jOperations (Spring Boot 2.4) |
| boot-neo4j-cypher | Spring Data Neo4j usingReacitveNeo4jClient (Spring Boot 2.4) |
| boot-data-cassandra | Spring Data Cassandra Example |
| boot-data-couchbase | Spring Data Couchbase Example |
| boot-data-elasticsearch | Spring Data ElasticSearch Example |
| boot-data-mongo | Spring Data Mongo Example(Repository, Auditing, testcontainers) |
| boot-data-mongo-querydsl | Spring Data Mongo Example with QueryDSL support |
| boot-data-mongo-gridfs | Spring Data Mongo Example with Gridfs support |
| boot-data-mongo-tailable | Spring Data Mongo tailable document example |
| boot-exception-handler | Global Exception Handler |
| boot-pulsar | Spring for Pulsar Reactive Example |
Some example codes are becoming deprecated as time goes by, eg. theSDN Rx project which was maintained by the Neo4j team is discontinued now, it is highly recommended to migrate to the officialSpring Data Neo4j.
And Spring Data R2dbc 1.2 added a lot of breaking changes, so I created anotherSpring R2dbc Sample repository to introduce the new features.
Springremoved support of RxJava/RxJava2, and other projects, such as Spring Data will remove RxJava/RxJava2 support soon.
| name | description |
|---|---|
| data-r2dbc | Spring Data R2dbc Example. (Deprecated, go tohantsy/spring-r2dbc-sample to update yourself) |
| data-r2dbc-postgresql | Spring Data R2dbc Example, but use PostgreSQL instead(Deprecated) |
| boot-r2dbc | Spring Data R2dbc example usingDatabaseClient(Deprecated) |
| boot-data-r2dbc | Spring Data R2dbc example(Deprecated) |
| boot-data-r2dbc-auditing | @EnableR2dbcAuditing example(Deprecated) |
| boot-data-r2dbc-postgresql | Same as boot-data-r2dbc, but use PostgresSQL instead(Deprecated) |
| boot-data-r2dbc-mysql | Same as boot-data-r2dbc, but use MySQL instead(Deprecated) |
| boot-data-r2dbc-mssql | Same as boot-data-r2dbc, but use MS SQL instead(Deprecated) |
| boot-neo4j-rx | SDN Rx Example but useReactiveNeo4jClient(Deprecated) |
| boot-neo4j-rx-cypher | SDN Rx Example using Cypher queries(Deprecated) |
| boot-data-neo4j-rx | SDN Rx Example(Deprecated) |
| rxjava | Same asvanilla, but use Rxjava instead of Reactor |
| rxjava-jdbc | Accessing database with rxjava-jdbc.NOTE: rxjava-jdbc is a wrapper of blocking Jdbc APIs |
| rxjava2 | Same asvanilla, but use Rxjava2 instead of Reactor |
| rxjava2-jdbc | Accessing database with rxjava2-jdbc.NOTE: rxjava2-jdbc is a wrapper of blocking Jdbc APIs |
Reactive Streams, official Reactive Streams website
Understanding Reactive types, Spring.IO
The WebFlux framework, Spring Framework Reference Documentation
Reactor Core 3.0 becomes a unified Reactive Foundation on Java 8, Spring.IO
Reactive Spring, Spring.IO
Three parts ofNotes on Reactive Programming by Dave Syer:
Kotlin extensions for MongoOperations and ReactiveMongoOperations
Specials thanks for Jetbrains's support by contributing an open-source license.
About
Spring 5/6 Reactive playground
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Sponsor this project
Uh oh!
There was an error while loading.Please reload this page.
Packages0
Uh oh!
There was an error while loading.Please reload this page.
Contributors10
Uh oh!
There was an error while loading.Please reload this page.
