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 и/или его филиалы. Все права защищены.