В Java, каков вариант использования нового или улучшенного загрузчика классов? - PullRequest
2 голосов
/ 28 марта 2020

В Java мы знаем, что загрузчик классов - это система JVM, которая загружает классы в JVM для выполнения. Когда я запускаю простой Java класс, он загружается и выполняется системой времени выполнения. Здесь я ничего не делаю в отношении загрузки классов. Но я вижу, что существуют различные проекты, в которых они пишут пользовательский загрузчик классов или улучшают существующие загрузчики классов. Пожалуйста, дайте мне знать случай использования производственного времени, когда требуется улучшение загрузчика классов или новый загрузчик классов.

1 Ответ

5 голосов
/ 28 марта 2020

Несколько вариантов использования, которые я могу вспомнить прямо сейчас:

  1. Вы можете использовать собственный загрузчик классов для замены реализации во время выполнения (т.е. без перезапуска сервера). Он активно используется JRebel
    https://www.jrebel.com/blog/how-to-reload-java-classes-at-runtime

  2. Tomcat использует загрузчик классов для разделения различных областей действия веб-приложений во время выполнения.
    Как Tomcat Classloader разделяет различные области объекта Webapps в одной и той же JVM?

  3. OSGI использует загрузчик классов для загрузки пакетов.
    Java использование загрузчика классов в OSGi

...