Spring WebFluxと反応的なスタイルでMongoデータベースにユーザーを保存しようとしましたが、データが保存されないため、Java 8、Spring 5、mongodbがあります。Spring 5のmongodbにユーザーを保存できませんWebFlux
これは私の設定です:
マイエンティティ:
@Document
public class User {
@Id
private String id;
private String username;
private String password;
}
マイリポジトリ:
public interface UserRepository extends ReactiveMongoRepository<User, String> {
}
私のWeb構成:
@Configuration
@EnableWebFlux
public class WebConfig {
@Autowired
private UserRepository userRepository;
@Bean
public RouterFunction userRoutes() {
return route(POST("/admin/users").and(accept(APPLICATION_JSON)),
request -> {
Mono<User> user = request.bodyToMono(User.class);
Mono<User> userMono = user.doOnNext(userRepository::save)
return ServerResponse.().body(userMono, User.class);
});
}
}
が、私はマニュアルを持っていることかもしれrepに保存した後にsubscribeを実行する私は春のリファレンスでそのような情報を見つけられませんでしたか?
UPD: しかし、私は、要求ユーザーから抽出しuserRepositoryに渡し、私はMongoのためにデータを保存するために成功した結果を持っている結果を返す場合。しかし、私はそれが良いアプローチであることを確認していない:
@Bean
public RouterFunction userRoutes() {
return route(POST("/admin/users").and(accept(APPLICATION_JSON)),
request -> {
User user = request.bodyToMono(User.class).block();
Mono<User> userMono = userRepository.save(user);
return ServerResponse.ok().body(userMono, User.class);
});
}