Комментарии 17
Я бы все-таки упомянул EJB в названии статьи.
Спасибо за статью!
Хотелось бы упомянуть механизмы Java, с помощью которых можно решить такую же задачу, но по другому: java.lang.instrument package и JPDA.
И фреймворки и инструменты: Javassist, ObjectWeb ASM, BCEL, JOIE, reJ JavaSnoop, Serp, JMangler
Может кому-нибудь будет полезно.
Хотелось бы упомянуть механизмы Java, с помощью которых можно решить такую же задачу, но по другому: java.lang.instrument package и JPDA.
И фреймворки и инструменты: Javassist, ObjectWeb ASM, BCEL, JOIE, reJ JavaSnoop, Serp, JMangler
Может кому-нибудь будет полезно.
Я правильно понимаю, что механизм схож с aspectJ и spring'овыми аспектами? В чём разница, какие преимущества/недостатки, например, как обстоят дела с перехватом внутриклассовых вызовов?
Для меня было удобно то, что не нужны дополнительные зависимости,
а проект предполагал, что чем меньше их чем лучше.
Подробнее об отличиях рассказать не могу, так как не работал с aspectJ.
А по сути механизмы работы схожие, все они AOP дополнения
а проект предполагал, что чем меньше их чем лучше.
Подробнее об отличиях рассказать не могу, так как не работал с aspectJ.
А по сути механизмы работы схожие, все они AOP дополнения
Разница в том что, то что относится к EJB соответствует некоторому Java EE стандарту, например JSR 220. А так да все это механизмы AOP. Довольно щирокая тема, в Spring оно давно есть (не секрет что в стандарты Java EE добавляют многие плюшки под впечатлением от Spring), в том числе иногда удобно вешать адвайсы по поинткатам описанным в XML, без всяких аннотаций (то есть не трогая кода).
использую их для кеширования объектов, проверяю в интерсепторе кеш и отдаю из него объект если есть, или дальше context.proceed();
метод, результат которого должен быть закеширован помечается аннотаций, удобно мне показалось
метод, результат которого должен быть закеширован помечается аннотаций, удобно мне показалось
а есть такое же, но для обычной явы? Без XMLов всяких, на аннотациях?
если вы context.proceed(); уберете, что вы возвращаете в методе? null?
Не увидел в статье связи между классом Count и LifeLogger. В частности интересует: почему на getMultiplyResult срабатывает только LifeLogger, а на getSummResult срабатывают оба интерцептора? У getMultiplyResult у Вас нет аннотации, указывающей на интерцептор. Правильно я понимаю, что в этом случае LifeLogger у Вас объявлен в дескрипторе развертывания?
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Java Interceptors (в EJB 3.0)