|
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 через список загрузчиков class.
|
Class<?> |
loadClassBefore(ClassLoader stop, String className)
Загрузите данное имя class через список загрузчиков class, останавливающихся в данном.
|
Class<?> |
loadClassWithout(ClassLoader exclude, String className)
Загрузите данное имя class через список загрузчиков class, исключая данный.
|
Class<?> loadClass(String className) throws ClassNotFoundException
Загрузите данное имя class через список загрузчиков class. Каждый ClassLoder поочередно от ClassLoaderRepository просят загрузить class через ClassLoader.loadClass(String) метод. Если это успешно возвращает a Class объект, который является результатом этого метода. Если это бросает a ClassNotFoundException, поиск продолжается со следующим ClassLoder. Если это выдает другое исключение, исключение распространяется от этого метода. Если конец списка достигается, a ClassNotFoundException бросается.
className - Имя class, который будет загружен.ClassNotFoundException - Указанный class не мог быть найден.Class<?> loadClassWithout(ClassLoader exclude, String className) throws ClassNotFoundException
Загрузите данное имя class через список загрузчиков class, исключая данный. Каждый ClassLoder поочередно от ClassLoaderRepository, кроме exclude, просится загрузить class через ClassLoader.loadClass(String) метод. Если это успешно возвращает a Class объект, который является результатом этого метода. Если это бросает a ClassNotFoundException, поиск продолжается со следующим ClassLoder. Если это выдает другое исключение, исключение распространяется от этого метода. Если конец списка достигается, a ClassNotFoundException бросается.
Знайте это, если ClassLoder в ClassLoaderRepository вызывает этот метод от loadClass метод, это представляет себя мертвой блокировке, если другой ClassLoder в ClassLoaderRepository делает ту же самую вещь одновременно. loadClassBefore(java.lang.ClassLoader, java.lang.String) методу рекомендуют избежать риска мертвой блокировки.
className - Имя class, который будет загружен.exclude - Загрузчик class, который будет исключен. Может быть нуль, когда этот метод эквивалентен loadClass(className).ClassNotFoundException - Указанный class не мог быть найден.Class<?> loadClassBefore(ClassLoader stop, String className) throws ClassNotFoundException
Загрузите данное имя class через список загрузчиков class, останавливающихся в данном. Каждый ClassLoder поочередно от ClassLoaderRepository просят загрузить class через ClassLoader.loadClass(String) метод. Если это успешно возвращает a Class объект, который является результатом этого метода. Если это бросает a ClassNotFoundException, поиск продолжается со следующим ClassLoder. Если это выдает другое исключение, исключение распространяется от этого метода. Если поиск достигает stop или конец списка, a ClassNotFoundException бросается.
Обычно этот метод вызывают от loadClass метод stop, консультироваться с загрузчиками, которые появляются перед этим в ClassLoaderRepository. Останавливая поиск, как только stop достигается, потенциальной мертвой блокировки с параллельной загрузкой class избегают.
className - Имя class, который будет загружен.stop - Загрузчик class, в котором можно остановиться. Может быть нуль, когда этот метод эквивалентен loadClass(className).ClassNotFoundException - Указанный class не мог быть найден.
Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92