2011-12-16 6 views
0

Мы пытаемся оценить CDI и AspectJ в нашем проекте. Кто-то здесь сделал что-то подобное? Может кто-нибудь поделиться своим мнением об использовании CDI или AspectJ по некоторым темам, как 1. Кривая обучения 2. Переносимость к различным серверам 3. ремонтопригодность 4. отладки Сравнение CDI и AspectJ

Благодарности

ответ

4

Это на самом деле очень разные технологии , CDI представляет собой инъекционный стек зависимости (например, Spring или Guice) с некоторыми функциями AOP (достаточными в типичных случаях использования). AspectJ - полномасштабное аспектно-ориентированное программирование язык, который на самом деле не предлагает каких-либо функций впрыска зависимостей.

.1. Кривая обучения

Обе технологии имеют множество материалов. CDI является новым, но вокруг него много шума. Например. см. CDI AOP Tutorial: Java Standard Method Interception Tutorial.

AspectJ намного старше и есть несколько фантастических книг об этом. Но я бы сказал, что это немного более требовательно.

.2. Переносимость на разные серверы

CDI - это стандарт Java для DI. Мы увидим все больше и больше серверов, реализующих его. AspectJ - это язык, который работает на уровне байт-кода. Он должен работать практически на любых JVM (мобильных, настольных, серверных, апплетах)

Что касается ремонтопригодности и отладки - это действительно разные технологии, поэтому я не буду погружаться в их сравнение. Однако CDI - это стандартный Java-код, а AspectJ - в основном генерация кода на уровне байт-кода. С другой стороны, сгенерированный код AspectJ (стеки-трассировки, декомпиляция) может быть более читаемым, чем тонны отражающих прокси и CGLIB сгенерированных классов с CDI.

+0

Спасибо за ваш ответ. Хотя есть много доступных материалов, лично я чувствую, что разработчикам будет более комфортно обучаться CDI, поскольку в основном это касается аннотации и некоторой конфигурации с использованием XML, где, как AOP, трудно понять, поскольку синтаксис pointcut может быть трудным и трудным читать. Итак, кривая обучения Я считаю, что CDI выигрывает над АОП – user667022