Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / JavaEE: Qualifiers / 11 сообщений из 11, страница 1 из 1
06.02.2014, 16:02
    #38552100
rema174
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaEE: Qualifiers
Что дает использование 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
06.02.2014, 16:31
    #38552149
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaEE: Qualifiers
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
06.02.2014, 16:36
    #38552156
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaEE: Qualifiers
Вот тут пытаються дать обоснование необходимости.
http://stackoverflow.com/a/15313148
...
Рейтинг: 0 / 0
06.02.2014, 16:59
    #38552182
rema174
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaEE: Qualifiers
почитал. действительно, у людей такие же вопросы. т.е. особой необходимости в qualifiers нет.
...
Рейтинг: 0 / 0
06.02.2014, 17:05
    #38552187
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaEE: Qualifiers
rema174почитал. действительно, у людей такие же вопросы. т.е. особой необходимости в qualifiers нет.
Необходимость, она есть, но она очень странная. С точки зрения кода, действительно, чище оставить поле типа наиболее абстрактного интерфейса, а не конкретной реализации. Это уменьшает связность. Предотвращает использование методов, кокретного типа и т.п. Но, аннотация возвращает нас с небес на землю и создаёт другую, хоть и более слабую, но все же явную, связь. Что уже как-то странно.
...
Рейтинг: 0 / 0
06.02.2014, 23:50
    #38552640
Atum1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaEE: Qualifiers
Blazkowicz,
тут видео

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

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

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

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

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

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

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

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

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


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