powered by simpleCommunicator - 2.0.30     © 2024 Programmizd 02
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / зачем ставить квалифаеры к параметрам методов
3 сообщений из 3, страница 1 из 1
зачем ставить квалифаеры к параметрам методов
    #39947109
rema174
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не уловил зачем есть возможность ставить квалифаеры в конструктор и в сеттер? Ведь их можно не указывать там оба, или один на выбор оставить, главное, чтобы остался на поле класса и будет все работать.

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
    @Inject @EAN13
    private CodeGenerator codeGenerator;

    @Inject
    public ProductService(@EAN13 CodeGenerator codeGenerator){
        this.codeGenerator = codeGenerator;
    }

    @Inject
    public void setCodeGenerator(@EAN13 CodeGenerator codeGenerator) {}



так тоже будет работать
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
    @Inject @EAN13
    private CodeGenerator codeGenerator;

    @Inject
    public ProductService(@EAN13 CodeGenerator codeGenerator){
        this.codeGenerator = codeGenerator;
    }

    @Inject
    public void setCodeGenerator(CodeGenerator codeGenerator) {}



и так тоже будет
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
    @Inject @EAN13
    private CodeGenerator codeGenerator;

    @Inject
    public ProductService(CodeGenerator codeGenerator){
        this.codeGenerator = codeGenerator;
    }

    @Inject
    public void setCodeGenerator(CodeGenerator codeGenerator) {}



а так будет использоваться EAN5
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
    @Inject @EAN5
    private CodeGenerator codeGenerator;

    @Inject
    public ProductService(@EAN13 CodeGenerator codeGenerator){
        this.codeGenerator = codeGenerator;
    }

    @Inject
    public void setCodeGenerator(@EAN13 CodeGenerator codeGenerator) {}
...
Рейтинг: 0 / 0
зачем ставить квалифаеры к параметрам методов
    #39947274
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rema174
Не уловил зачем есть возможность ставить квалифаеры в конструктор и в сеттер? Ведь их можно не указывать там оба, или один на выбор оставить, главное, чтобы остался на поле класса и будет все работать.

вам нужно с DI разобраться сначала.
- с field dependency injection возникает дрочь, когда хочется руками зависимости собрать (например в тестах)
- setter-based dependency injection предполагает что бин может быть неправильно инициализирован, да и то что он мутировать может так себе затея
- constructor-based dependency injection - оно более менее оптимально, если полей не больше 3-4 (если больше, то дизайн явно кривой)
...
Рейтинг: 0 / 0
зачем ставить квалифаеры к параметрам методов
    #39947368
rema174
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Андрей Панфилов,

как я понял, эти точки инжекции должны быть взаимозаменяемы, т.е. можно влюбом месте внедрять на выбор,
но мой пример вроде показывает обратное, т.е. если убрать на конструкторе, то получим

авторWELD-001334: Unsatisfied dependencies for type ProductService with qualifiers

хотя квалифаер то указан на поле класса

Код: java
1.
2.
@Inject @EAN13
private CodeGenerator codeGenerator;
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / зачем ставить квалифаеры к параметрам методов
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]