Как использовать асинхронный метод / переменную при загрузке Spring? - PullRequest
0 голосов
/ 23 января 2019

У меня есть операция CRUD, которая сильно зависит от соединения с базой данных, поэтому я хочу повысить общую производительность за счет асинхронных вызовов операций с базой данных.

например, в моем классе обслуживания

class CityService {
  @Autowired
  private CountryDao countryDao;

  private City create () {
    City c = new City();
    ListenableFuture<Country> country = countryDao.findById(id);
    country.addCallback(r->city.setCountry(r), ()-> { throw new RuntimeException();});
    ...
    //suppose I have multiple database operations followed some logic, so I dont want to execute them one after one
    ...
    return city;
  }
}

Я хочу знать, является ли это правильным способом использования встроенного ListenableFuture of Spring Data, как я могу убедиться, что у города есть страна до возврата (он может выполнить возврат до того, как обратный вызов даст результат, верно?)?Если нет, то как лучше?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...