Skip to content

Latest commit

 

History

History
89 lines (73 loc) · 7.85 KB

README.md

File metadata and controls

89 lines (73 loc) · 7.85 KB

Spring Reactive Sample

This is a sandbox project for demonstrating Reactive Streams support in Spring framework and its ecosystem.

Related Posts

Sample Codes

The following table list all sample codes related to this post. The sample codes of this post is hosted on my Github account, welcome to star and fork it.

name description
vanilla The initial application, includes basic spring-webflux feature, use a main class to start up the application
vanilla-jetty Same as vanilla, but use Jetty as target runtime
vanilla-reactor-netty Same as vanilla, but use Reactor Netty as target runtime
vanilla-reactor-netty Same as vanilla, but use Undertow as target runtime
java9 Same as vanilla, Java 9 Flow API support is not ready in Spring 5.0.0.REALESE, planned in 5.0.1, see issue SPR-16052 and the original discussion on stackoverflow
rxjava Same as vanilla, but use Rxjava instead of Reactor
rxjava2 Same as vanilla, but use Rxjava2 instead of Reactor
war Replace the manual bootstrap class in vanilla with Spring ApplicationInitializer, it can be packaged as a war file to be deployed into an external servlet container.
routes Use RouterFunction instead of controller in vanilla
register-bean Programmatic approach to register all beans in ApplicatonContext at application bootstrap
data-mongo Demonstration of Spring Data Mongo reactive support
data-redis Demonstration of Spring Data Redis reactive support
data-cassandra Demonstration of Spring Data Cassandra reactive support
data-couchbase Demonstration of Spring Data Couchbase reactive support
security Based on vanilla, add secuirty for spring webflux support
security-user-properties Same as secuirty, but use users.properties to store users
security-method Replace URI based configuration with method level constraints
security-data-mongo Based on data-mongo and security, replace with dummy users in hard codes with Mongo driven store
multipart Mutipart request handling and file uploading
multipart-data-mongo (PENDING)Multipart and file uploading, but data in Mongo via Spring Data Mongo, waitng for Reactive support for GridFsTemplate
mvc-thymeleaf Traditinal web mvc application, use Thymeleaf specific Reactive view resolver to render view
mvc-freemarker Traditinal web mvc application, use freemarker as template engine, currently it does not have a reactive view resolver
sse Server Send Event and json stream example
websocket Reactive WebSocket example
boot Switch to Spring Boot to get autoconfiguration of spring-webflux, added extra Spring Data Mongo, Spring Security support
boot-jetty Same as boot, but use Jetty as target runtime
boot-tomcat Same as boot, but use Tomcat as target runtime
boot-undertow Same as boot, but use Undertow as target runtime
boot-routes Use RouterFunction instead of the general Controller in boot
boot-freemarker Same as mvc-freemarker, but based on Spring Boot
groovy Same features as boot, but written in groovy
client Demonstration of WebClient to shake hands with backend reactive APIs
kotlin Same features as boot, but written in kotlin
kotlin-gradle Use kotlin functional approach to declare beans and bootstrap the application programatically
session (WIP)More features will be added here

References

Thanks

I appreciate all contribution from the community, not limited to reporting bugs, filing an issue, etc.

Specials thanks for Jetbrains's support by contributing an open-source license.