В каком сценарии мы будем использовать Thread.getContextClassLoader (), а ClassLoader.getSystemClassLoader () может это понять? - PullRequest
3 голосов
/ 15 марта 2012

После прохождения через гугл я действительно не смог найти пример как использовать Thread.getContextClassLoader (),

возможно, этот вопрос дублируется, как показано ниже Разница между загрузчиком классов контекста потока и обычным загрузчиком классов

Мой вопрос повторяется ниже: Как я знаю сценарий использования Thread.getContextLoader, основные классы JNDI Becasue включены в /lib/rt.jar но те JNDI Core (может быть, они только некоторый интерфейс) не реализованы в bean-компоненте, в других работах, если вы хотите использовать функции JNDI, вы должны реализация JNDI, затем мы помещаем эту реализацию (возможно, jars) в системный classpath, но теперь основные классы JDNI загружаются Bootstrap, и эти основные классы должны использовать его классы реализации, Хорошо, мы предоставляем Thread.getContextClassLoader () (если у вас нет каких-либо операций по умолчанию - ClassLoader.getSystemClassLoader ()), он может загрузить их сейчас, я просто предположил, что почему основные классы JNDI используют этот способ для непосредственного получения systemClassLoader ClassLoader.getSystemClassLoader ()?

Может быть, некоторые пункты я объяснил не правильно ..

<1> но я просто хочу понять, можем ли мы использовать ClassLoader.getSystemClassLoader () вместо Thread.getClassLoader () для загрузки системных классов classpath или ресурсов в классах, которые загружен загрузчиком классов начальной загрузки?

1 Ответ

1 голос
/ 15 марта 2012

Thread.getContextClassLoader() был введен в Java не с самого начала. Это очень полезно в средах с несколькими загрузчиками классов, вскоре для приложений Java EE, работающих в контейнере, который обычно выделяет загрузчик частного класса для каждого корпоративного приложения. Таким образом, ресурсы, упакованные с этим приложением, могут быть получены с помощью загрузчика класса контекста.

Используется также для самостоятельной настройки систем ведения журналов, таких как ведение журнала общих и log4j.

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