Я новичок в программировании на Spring. Я тестирую реактивное программирование с проектом Reactor / Webflux.
Регистрация базы данных работает хорошо через сообщение.
Но при каждом вызове API Get Mono или Flux я получаю список пустых объектов.
Не могли бы вы дать мне решение?
Я инициировал проект через Spring boot / Maven в Kotlin и Mongo реактивной.
Спасибо за вашу помощь!
My UsersApplication
@SpringBootApplication
class UsersMsApplication
fun main(args: Array<String>) {
runApplication<UsersMsApplication>(*args)
}
Моя модель:
@Document(collection = "user")
data class User(
@Id
private var id: String,
@Field("name")
private var name: String
) : Serializable
Мой репозиторий
@Repository
interface UserRepository : ReactiveMongoRepository<User, String>
My UserService
interface UserService {
fun createUser(user: User): Mono<User>
fun findAllUsers(): Flux<User>
fun findOneById(id: String): Mono<User>
}
My UserServiceImpl
@Service
class UserServiceImpl(private val userRepository: UserRepository): UserService {
override fun createUser(user: User): Mono<User> {
return userRepository.save(user)
}
override fun findAllUsers(): Flux<User> {
return userRepository.findAll()
}
override fun findOneById(id: String): Mono<User> {
return userRepository.findById(id)
}
}
Мой пользовательский ресурс
@RestController
@RequestMapping("/api")
class UserResource(private val userService: UserService) {
@PostMapping("/users")
fun addUser(@RequestBody user: User) : Mono<User> = userService.createUser(user)
@GetMapping("/users")
fun findAllUsers() : Flux<User> = userService.findAllUsers()
@GetMapping("/users/{id}")
fun getOneUser(@PathVariable id: String) : Mono<User> = userService.findOneById(id)
}
My application.properties
spring.data.mongodb.host=localhost
spring.data.mongodb.port=27017
spring.data.mongodb.database=users_db
logging.level.org.springframework.data=debug
У меня есть три записи в базе данных, но вот что я вернул в качестве результатов почтальоном, завитком или браузером:
[
{},
{},
{}
]
и в моей консоли:
2019-05-07 15: 05: 13.368 DEBUG 25022 --- [ctor-http-nio-4] osdmcore.ReactiveMongoTemplate: найти с помощью запроса: {} поля: Document {{}} для класса: class com .inovans.backend.usersms.domains.User в коллекции: пользователь