Внедрение зависимостей/ORM в Vertx для Java

Я изучаю платформу vertx с помощью Java, и мне было интересно, есть ли какая-либо «инфраструктура», такая как Spring Core, для выполнения внедрения зависимостей или библиотеки?

Кроме того, я искал ORM для взаимодействия с реляционной базой данных (например, Hibernate, Spring Data in Spring.

Спасибо за вашу рекомендацию!


person BOUH OUALID    schedule 24.12.2018    source источник
comment
VertX — это Java, поэтому использование HIbernate/JPA должно быть идеальным.   -  person M. Deinum    schedule 24.12.2018
comment
Vert.x вместе с google guice в качестве инъекции зависимостей и Ebean в качестве ORM идеально подходят, забудьте о весне.   -  person Omid P    schedule 24.12.2018
comment
Обратите внимание, что Vert.X — это асинхронный реактивный фреймворк. Hibernate поддерживается JDBC, который является синхронным и блокирующим. Их взаимодействие, скорее всего, сведет на нет все преимущества Vert.X.   -  person Boris the Spider    schedule 26.12.2018
comment
@OmidP Ebean по-прежнему выглядит так, как будто он поддерживается JDBC, поэтому все еще мусор с реактивной структурой.   -  person Boris the Spider    schedule 26.12.2018
comment
Учитывая все упоминания о Spring, почему бы не отказаться от Vert.X и использовать Spring WebFlux?   -  person Boris the Spider    schedule 26.12.2018
comment
при использовании spring webflux вы попадете в ловушку обработки транзакций вручную, кроме того, вы можете блокировать в vert.x, что удобно. в любом случае мой опыт интеграции spring, hibernate и vert.x не очень хорош.   -  person Omid P    schedule 26.12.2018
comment
github.com/vert- x3/vertx-examples/blob/master/spring-examples/   -  person Alexander Mills    schedule 27.01.2019


Ответы (1)


Вы можете использовать интеграцию между Spring и Vert.x в своем проекте:

Вы можете увидеть примеры здесь:

https://www.baeldung.com/spring-vertx

https://github.com/vert-x3/vertx-examples/tree/master/spring-examples

Общая идея состоит в том, чтобы использовать Spring для настройки вашего приложения и использовать все его мощные аннотации и функции внедрения зависимостей, а также использовать Vert.x для создания http-сервера для обработки ваших запросов с использованием реактивной модели Vert.x.

Но если вы обнаружите, что пишете весь свой код для обработки запросов внутри executeBlocking (например, если вы используете Spring Data и все ваши запросы извлекаются из БД), пожалуйста, не делайте этого. Вместо этого попробуйте найти альтернативные асинхронные способы работы (например, для БД вы можете использовать асинхронные клиенты Vert.x< /а>).

person Mohamed Elsayed    schedule 26.12.2018