Медленный первый запрос из-за Introspector.getBeanInfo внутри библиотеки Orika - PullRequest
0 голосов
/ 06 мая 2020

Приложение My Spring Boot 2.2.6 использует Orika для сопоставления DTO между слоями (JPA Entity репозитория для просмотра POJO). Он использует встроенный Tomcat и JSP в качестве технологии просмотра.

Когда Орика сопоставляет один компонент с другим, в первый раз это занимает около 15 секунд. Отлаживая исходный код, я сузил проблему до вызова Introspector.getBeanInfo(class).

Я сократил проблему до следующего:

    @Override
    public Collection<MyDto> getAll() {
        BeanInfo beanInfo = null;
        try {
            beanInfo = Introspector.getBeanInfo(MyEntity.class);
        } catch (IntrospectionException | ClassNotFoundException e) {
            e.printStackTrace();
        }
        return Collections.emptyList();
    }

Этот простой оператор внутри блока try catch также требует long на первый запрос, но учтите:

  • В моем ноутбуке он работает плавно, без каких-либо задержек
  • Когда я запускаю его в Kubernetes как контейнер с JDK11, он берет это long.

Есть какие-нибудь объяснения и советы, как это исправить?

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