|
Spec-Zone .ru
спецификации, руководства, описания, API
|
public interface ClassLoaderRepository
Экземпляры этого интерфейса используются, чтобы сохранить список ClassLoaders зарегистрированным в Сервере MBean. Они обеспечивают необходимые методы, чтобы загрузить классы, используя зарегистрированный ClassLoaders.
Первый ClassLoder в a ClassLoaderRepository всегда собственный ClassLoder Сервера MBean.
Когда MBean регистрируется в Сервере MBean, если это имеет подкласс ClassLoader и если это не реализует интерфейс PrivateClassLoader, это добавляется до конца Сервера MBean ClassLoaderRepository. Если это впоследствии незарегистрировано от Сервера MBean, это удаляется из ClassLoaderRepository.
Порядок MBeans в ClassLoaderRepository является существенным. Для любых двух MBeans X и Y в ClassLoaderRepository, X должен появиться прежде Y, если бы регистрация X была завершена перед регистрацией запущенного Y. Если X и Y были зарегистрированы одновременно, их порядок неопределенен. Регистрация MBean соответствует звонку MBeanServer.registerMBean(java.lang.Object, javax.management.ObjectName) или один из MBeanServer.createMBean методы.
MBeanServerFactory| Модификатор и Тип | Метод и Описание |
|---|---|
Class<?> |
loadClass(String className)
Загрузите данное имя класса через список загрузчиков класса.
|
Class<?> |
loadClassBefore(ClassLoader stop, String className)
Загрузите данное имя класса через список загрузчиков класса, останавливающихся в данном.
|
Class<?> |
loadClassWithout(ClassLoader exclude, String className)
Загрузите данное имя класса через список загрузчиков класса, исключая данный.
|
Class<?> loadClass(String className) throws ClassNotFoundException
Загрузите данное имя класса через список загрузчиков класса. Каждый ClassLoder поочередно от ClassLoaderRepository просят загрузить класс через ClassLoader.loadClass(String) метод. Если это успешно возвращает a Class объект, который является результатом этого метода. Если это бросает a ClassNotFoundException, поиск продолжается со следующим ClassLoder. Если это выдает другое исключение, исключение распространяется от этого метода. Если конец списка достигается, a ClassNotFoundException бросается.
className - Имя класса, который будет загружен.ClassNotFoundException - Указанный класс не мог быть найден.Class<?> loadClassWithout(ClassLoader exclude, String className) throws ClassNotFoundException
Загрузите данное имя класса через список загрузчиков класса, исключая данный. Каждый ClassLoder поочередно от ClassLoaderRepository, кроме exclude, просится загрузить класс через ClassLoader.loadClass(String) метод. Если это успешно возвращает a Class объект, который является результатом этого метода. Если это бросает a ClassNotFoundException, поиск продолжается со следующим ClassLoder. Если это выдает другое исключение, исключение распространяется от этого метода. Если конец списка достигается, a ClassNotFoundException бросается.
Знайте это, если ClassLoder в ClassLoaderRepository вызывает этот метод от loadClass метод, это представляет себя мертвой блокировке, если другой ClassLoder в ClassLoaderRepository делает ту же самую вещь одновременно. loadClassBefore(java.lang.ClassLoader, java.lang.String) методу рекомендуют избежать риска мертвой блокировки.
className - Имя класса, который будет загружен.exclude - Загрузчик класса, который будет исключен. Может быть нуль, когда этот метод эквивалентен loadClass(className).ClassNotFoundException - Указанный класс не мог быть найден.Class<?> loadClassBefore(ClassLoader stop, String className) throws ClassNotFoundException
Загрузите данное имя класса через список загрузчиков класса, останавливающихся в данном. Каждый ClassLoder поочередно от ClassLoaderRepository просят загрузить класс через ClassLoader.loadClass(String) метод. Если это успешно возвращает a Class объект, который является результатом этого метода. Если это бросает a ClassNotFoundException, поиск продолжается со следующим ClassLoder. Если это выдает другое исключение, исключение распространяется от этого метода. Если поиск достигает stop или конец списка, a ClassNotFoundException бросается.
Обычно этот метод вызывают от loadClass метод stop, консультироваться с загрузчиками, которые появляются перед этим в ClassLoaderRepository. Останавливая поиск, как только stop достигается, потенциальной мертвой блокировки с параллельной загрузкой класса избегают.
className - Имя класса, который будет загружен.stop - Загрузчик класса, в котором можно остановиться. Может быть нуль, когда этот метод эквивалентен loadClass(className).ClassNotFoundException - Указанный класс не мог быть найден.
Для дальнейшей ссылки API и документации разработчика, см. . Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2011, Oracle и/или его филиалы. Все права защищены.