Skip to content

Instantly share code, notes, and snippets.

@shazin
shazin / pom.xml
Created September 10, 2017 05:08
<groupId>lk.techtalks</groupId>
<artifactId>spring-webflux-test</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.0.0.RC3</version>
</dependency>
@Service
public class PersonService {
private final List<Person> PEOPLE = new ArrayList<>();
{
PEOPLE.add(new Person("Shazin"));
PEOPLE.add(new Person("Shahim"));
PEOPLE.add(new Person("Shuhail"));
PEOPLE.add(new Person("Shuhaib"));
@RestController
@RequestMapping("/people")
public class PeopleController {
@Autowired
private PersonService blockingService;
@GetMapping
public Flux<Person> getPeople() {
return Flux.fromIterable(blockingService.getPeople());
{
"chain": [
{
"index": 1,
"timestamp": 1507040257518,
"transactions": [],
"proof": 100,
"previousHash": "1"
},
{
@shazin
shazin / pom.xml
Last active December 9, 2017 05:18
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb-reactive</artifactId>
<version>2.0.0.M6</version>
</dependency>
<dependency>
<groupId>io.reactivex.rxjava2</groupId>
<artifactId>rxjava</artifactId>
<version>2.1.1</version>
@SpringBootApplication(exclude = {MongoAutoConfiguration.class,
MongoDataAutoConfiguration.class })
@EnableReactiveMongoRepositories
@AutoConfigureAfter(EmbeddedMongoAutoConfiguration.class)
public class ApplicationConfiguration
extends AbstractReactiveMongoConfiguration {
private final Environment environment;
public ApplicationConfiguration(Environment environment) {
public interface ReactiveTaxiRepository
extends ReactiveCrudRepository {
Flux findByNumber(String taxiNumber);
@Tailable
Flux findWithTailableCursorBy();
}
public interface RxJava2TaxiRepository
extends RxJava2CrudRepository {
Flowable findByNumber(String taxiNumber);
@Tailable
Flowable findWithTailableCursorBy();
}
// Find by Number, Aggregate to a List, Block until finish
List myTaxis = taxiRepository
.findByNumber("CAL-4259")
.collectList()
.block();
// Find by Number, Aggregate to a List, Block until finish
List myTaxis = rxJava2TaxiRepository
.findByNumber("CAL-4259")
.toList()
.blockingGet();