Преимущества динамических прокси JDK

Каковы преимущества динамических прокси JDK? Особенно по сравнению с прокси CGLIB. Несмотря на то, что прокси-серверы JDK не зависят от какой-либо сторонней библиотеки, каковы другие преимущества прокси-серверов JDK?
Я читал в нескольких местах, что прокси-серверы CGLIB немного быстрее, чем прокси-серверы JDK. Также прокси-серверы CGLIB не требуют прокси-класса для реализации какого-либо интерфейса. Из этого кажется, что прокси-серверы CGLIB превосходят прокси-серверы JDK. Это правда?


person Ondrej Bozek    schedule 02.09.2013    source источник
comment
возможный дубликат В чем разница между динамическим прокси JDK и CGLib?   -  person Stephen C    schedule 02.09.2013
comment
Я просто хочу знать варианты использования динамических прокси JDK и их преимущества. Или они просто устарели? Должен ли я всегда использовать CGLIB вместо этого? Это не ответ на ответ, который вы предлагаете!   -  person Ondrej Bozek    schedule 02.09.2013


Ответы (2)


Я просто хочу знать варианты использования динамических прокси JDK и их преимущества.

Варианты использования примерно одинаковы /

Или они просто устарели?

Нет. Динамические прокси-серверы JDK не устарели. Проверьте javadoc.

Должен ли я всегда использовать CGLIB вместо этого?

Нет... не всегда. Вы уже определили один случай, когда не стали бы. И @Евгений Дорофеев. Идентифицировал другой ... который также был идентифицирован в Вопросе, на который я ссылался!

Третье, что нужно учитывать, это какую версию CGLIB использовать и совместима ли она с другими используемыми вами вещами. (Можно было бы ожидать, что динамические прокси JDK будут более стабильными, чем CGLIB... в зависимости от того, откуда они взялись. Производительность — не единственный критерий выбора.)

Но в основном решать вам самим... исходя из ваших реальных системных требований, а не каких-то случайных рекомендаций.

person Stephen C    schedule 02.09.2013
comment
Спасибо за ваши идеи. Вот почему я спрашиваю, если я хочу принять решение, мне нужно знать сильные стороны динамического прокси JDK. Из того, что было упомянуто, кажется, что есть довольно крайние случаи, в которых динамический прокси-сервер JDK является правильным выбором. - person Ondrej Bozek; 04.09.2013

Одним из недостатков проксирования классов с помощью CGLIB является то, что он не может работать с окончательными методами, поскольку их нельзя переопределить.

person Evgeniy Dorofeev    schedule 02.09.2013
comment
Но и в этой ситуации динамические прокси не сработают... не так ли? - person Stephen C; 02.09.2013
comment
Они будут, у нас может быть класс с публичным конечным методом, который реализует метод интерфейса, динамический прокси может обрабатывать такой метод. - person Evgeniy Dorofeev; 02.09.2013
comment
Итак, это первый случай использования динамических прокси JDK. - person Ondrej Bozek; 02.09.2013