Мне нравится способ, которым Guice делает это довольно прямым для ручного создания собственных модулей каждый с их собственной привязкой, сделанной в коде. CDI, с другой стороны, кажется, полагается больше на волшебный а не программный доступ к привязке SEST. Я неправильно или как можно достигнуть того же эффекта со СВАРКОЙ.
Любой пример кода ценился бы...
Я надеялся создать Модуль (Термин Guice извините, я не уверен в термине CDI), программно, с помощью стиля шаблона разработчика, как дано Guice на http://code.google.com/p/google-guice/.
Я создаю динамическую систему и существует потребность во мне смочь связать типы (как интерфейсы), константы и т.д., а не просто иметь Сварку динамично сканируют путь к классу и т.д. и находят и регистрируют типы. Я полагаю, что CDI статичен, javax.inject пакет не включает интерфейсов, которые позволяют тому программно связывать типы с реализациями.
Основная предпосылка исходного вопроса была простым наблюдением, что аннотации испеклись в, и правила, определенные в них для помощи inejctor, не могут быть изменены. Я первоначально хотел, чтобы открытый доступ к тем же интерфейсам что использование сканера пути к классу CDI создал определения для своего внутреннего пользования. В основном waht, который, как я говорю, является, я хочу слой, который позволяет мне читать аннотации и создавать определения для контейнера. Поставщик по умолчанию мог быть тем, который делает то, что происходит теперь, но если Вы хотите некоторую другую стратегию затем, там существует возможность сделать это.
Одной проблемой с текущим подходом является ограничение, что нельзя снова использовать компоненты (классы) с различными аннотациями для выбора различных сотрудников. Перед переходом, позволяют мне квалифицировать этот оператор, да он может быть сделан с поставщиками и такой, но это приводит к большему количеству артефактов. Должен быть более простой путь.
Извините, если бы этот пример плох, мой вариант использования намного более включен, и деталь помешала бы и сделала бы для намного более длительного чтения.
Предположите, что у каждого есть компонент перезаписи URL, который для пользы аргументов имеет некоторые параметры как
Если Вы хотите ввести этот тот же компонент с двумя различными правилами замены, но иметь инжектор инструмента для очистки HTML, Ваш застрявший. Уверенный существуют способы обойти это, но они требуют артефактов, который является, конечно, большим количеством кода.
Все обязательные правила, к сожалению, находятся на классе а не экземпляре таким образом каждый раз, когда Вы просите класс, Вы возвращаете в значительной степени afunctionally эквивалентный экземпляр.
Этот вопрос был записан, в то время как назад, я разочаровался в Сварке. Я верю способу, которым это диктует, как его волшебство сделано, неправильное. Мне не нравится факт, который они диктуют мне, как это происходит без того, если меня способ управлять, когда или как я мог бы хотеть повторить это действие. Мне не нравится эта негибкость.