2015-03-27 3 views
0

Мне интересно, какие части отражения разрешены для использования в EJB (EJB3.x), которые не рекомендуется использовать и какие из них запрещены.Разрешено ли отражение в EJB?

[EDIT] Я вообще говорю о таких вещах, как getMethod(), method.invoke() и т. Д. Для разных типов EJB, поэтому никаких java-файлов POJO.

Я искал основную спецификацию EJB, не нахожу настоящих советов по этому вопросу.

Я лично считаю, что избежать использования рефлексивных внешних фреймворков - хороший стиль программирования, но остается вопрос, какие части разрешены стандартом?

Заранее благодарен!

+0

Этот вопрос не является конкретным. В каком контексте в EJB? Причина, по которой сторонние библиотеки, используемые в сеансах EJB, могут использовать отражения. Но выполнение рефлексивного вызова на ejb сессионных beans само не было бы хорошей идеей, конечно, причиной того, как контейнер ejb предоставляет ссылку на компонент, зависит от реализации, некоторые используют прокси-сервер, некоторые наследуют от вашего собственного сеанса bean – maress

+0

спасибо за подсказку, я уточнил мой вопрос немного больше. Я имею в виду использование отражения на типах EJB. – gorefest

ответ

1

Вы видели, что спецификация EJB 3.1 говорит в пункте 21.2.2?

Предприятие компоненты не должны пытаться запросить класс для получения информации о заявленных членов, которые иначе не доступны для бин из-за правила безопасности языка Java. Компонент предприятия не должен пытаться использовать API Reflection для доступа к информации о том, что правила безопасности на языке программирования Java недоступны.

Так что, вообще говоря, вы не должны нарушать определенные пользователем правила безопасности.

+0

Я нашел это. Однажды я узнал, что использование рефлексии вообще запрещено на EJB, но это не охвачено. Это означает, что метод.invoke() для прокси-сервера EJB будет в порядке, если этот метод является общедоступным, не так ли? – gorefest

Смежные вопросы