powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / JavaEE: Qualifiers
11 сообщений из 11, страница 1 из 1
JavaEE: Qualifiers
    #38552100
rema174
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Что дает использование Qualifiers ?
You can use qualifiers to provide various implementations of a particular bean type.
Например,
Код: java
1.
2.
3.
4.
5.
public class Greeting {
    public String greet(String name) {
        return "Hello, " + name + ".";
    }
}


Код: java
1.
2.
3.
4.
@Qualifier
@Retention(RUNTIME)
@Target({TYPE, METHOD, FIELD, PARAMETER})
public @interface Informal {}



Код: java
1.
2.
3.
4.
5.
6.
7.
8.
@Informal
public class InformalGreeting extends Greeting {
    
    @Override
    public String greet(String name) {
        return "Hi, " + name + "!";
    }
}


Код: java
1.
2.
3.
4.
5.
6.
7.
8.
@Named
@RequestScoped
public class Printer {

    @Inject
    @Informal
    Greeting greeting;
...


разве нельзя сразу написать без всяких @Informal
Код: java
1.
2.
3.
4.
5.
6.
7.
@Named
@RequestScoped
public class Printer {

    @Inject
    InformalGreeting iGreeting;
...
...
Рейтинг: 0 / 0
JavaEE: Qualifiers
    #38552149
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rema174разве нельзя сразу написать без всяких @Informal

JEE такой J2EE. Везде пишут как делать. Но нигде не пишут зачем.
Соглашусь, что выглядит странно и безполезно.
Вот тут в коментариях аналогичное мнение
http://java.dzone.com/articles/java-ee6-cdi-named-components Now that's a good question. I haven't been able to understand yet, why is @Inject with a qualifier that is bound to a concrete implementation better than simply @Inject with the concrete implementation itself. If you want to change the injected type, you have to recompile again anyways. The only point I see is that if you inject the concrete impl without qualifier, you might accidently use methods of the impl, not just the interface methods. Then, if you do decide to change the implementation, you can get compilation errors for such methods. Having said that, testing and mocking would show this problem, and since you have to recompile anyways, I am not sure if it's a big deal. Please anybody correct me if I am wrong. Other than the reason stated above, I am clueless about why one would need qualifiers.
...
Рейтинг: 0 / 0
JavaEE: Qualifiers
    #38552156
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот тут пытаються дать обоснование необходимости.
http://stackoverflow.com/a/15313148
...
Рейтинг: 0 / 0
JavaEE: Qualifiers
    #38552182
rema174
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
почитал. действительно, у людей такие же вопросы. т.е. особой необходимости в qualifiers нет.
...
Рейтинг: 0 / 0
JavaEE: Qualifiers
    #38552187
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rema174почитал. действительно, у людей такие же вопросы. т.е. особой необходимости в qualifiers нет.
Необходимость, она есть, но она очень странная. С точки зрения кода, действительно, чище оставить поле типа наиболее абстрактного интерфейса, а не конкретной реализации. Это уменьшает связность. Предотвращает использование методов, кокретного типа и т.п. Но, аннотация возвращает нас с небес на землю и создаёт другую, хоть и более слабую, но все же явную, связь. Что уже как-то странно.
...
Рейтинг: 0 / 0
JavaEE: Qualifiers
    #38552640
Atum1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,
тут видео

YouTube Video
...
Рейтинг: 0 / 0
JavaEE: Qualifiers
    #38552697
rema174
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Так понятнее.
Выходит, квалифаер имеет смысл, если есть несколько реализаций Greeting,
но... даже если их несколько, никто не мешает прописать конкретную реализацию,
а если это не желательно, то берем квалифаер.
Так же, кореец говорит, что эти вещи можно использовать и для SE, но еще не встречал такое.
...
Рейтинг: 0 / 0
JavaEE: Qualifiers
    #38552964
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Atum1минута 14.30 про Qualifiers
С 14:30 он просто рассказывает всё тоже самое что написано в туториале. По заданному вопросу я что-то ничего не услышал.
...
Рейтинг: 0 / 0
JavaEE: Qualifiers
    #38553522
Atum1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rema174Так понятнее.
Выходит, квалифаер имеет смысл, если есть несколько реализаций Greeting,
но... даже если их несколько, никто не мешает прописать конкретную реализацию,
а если это не желательно, то берем квалифаер.
Так же, кореец говорит, что эти вещи можно использовать и для SE, но еще не встречал такое.

он сказал воспринимайте квалифаер - как тип ...

я почему то считал что квалифаер - это аннотация в которой можно указать имя конкретной реализации т.е.

таким образом вынести выбор конкретной реализации в конфиг?!
...
Рейтинг: 0 / 0
JavaEE: Qualifiers
    #38553571
rema174
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Atum1rema174Так понятнее.
Выходит, квалифаер имеет смысл, если есть несколько реализаций Greeting,
но... даже если их несколько, никто не мешает прописать конкретную реализацию,
а если это не желательно, то берем квалифаер.
Так же, кореец говорит, что эти вещи можно использовать и для SE, но еще не встречал такое.

он сказал воспринимайте квалифаер - как тип ...

я почему то считал что квалифаер - это аннотация в которой можно указать имя конкретной реализации т.е.

таким образом вынести выбор конкретной реализации в конфиг?!

правильно считал (но наверное не в конфиг, т.к. конфиги это скорее xml).
это и есть выбор конкретной реализации. тема квалифаера полностью раскрывается при использовании продюсера, т.к. нужно выбирать реализацию, которая как раз и задается квалифаером. я так понял.
...
Рейтинг: 0 / 0
JavaEE: Qualifiers
    #38556711
Atum1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Просто есть еще
@Qualifier в спринге
http://www.mkyong.com/spring/spring-autowiring-qualifier-example/

и тут это как раз четко задание реализации через имя
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / JavaEE: Qualifiers
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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