У нас есть некоторые проблемы с производительностью в нашем приложении Spring Boot 1.4.x (и 2.1.x в другой ветке) с Spring 4.3.x (и 5.1.x в другой ветке), которое также использует EclipseLink, Spring Data, Jetty9.x и т. Д. Пока мы пытались диагностировать проблемы с производительностью, которые у нас были, мы обнаружили, что во время запуска было напечатано сообщение с eclipselink.weaving=false
.Я искал вокруг, и мне кажется, согласно некоторой старой документации EclipseLink , что наши LAZY
выборки на самом деле EAGER
, потому что мы пропускаем как статическое, так и динамическое плетение.Я немного смущен положением вещей:
Является ли Jetty типом контейнера Java EE, который автоматически обеспечивает возможность переплетения, как в документации предполагают, что контейнеры Jave EE должны? (Мое текущее предположение состоит в том, что это не так.)
При поиске решений я наткнулся на предложения по использованию -javaagent:eclipselink.jar
. Это все еще необходимо для версий, которые у нас есть?
Во время моего тестирования мне пришлось добавить EclipseLink Persistence JAR в bootclasspath
, чтобы агент EclipseLink работал. Ожидается ли это?
Даже после этого он все еще жаловался.После некоторых дальнейших поисков я добавил spring-instrument
JAR в качестве агента. Это правильно? Я думал, что EclipseLink JAR в качестве агента должно быть достаточно.
В этот момент приложение, похоже, работает. Можете ли вы предложить способ проверки того, что LAZY
выборки действительно ленивы?
Я предпочитаю использовать динамическое плетение вместо статического.