БлогГлавная » 2016 » Февраль » 9 » Инжекция зависимости через поле, конструктор и сеттер
09:51 Инжекция зависимости через поле, конструктор и сеттер |
Примеры инжекций различными способами
import CDI.Digits;
import CDI.NumberGenerator;
import CDI.QFirstGen;
import CDI.QGenWithMember;
import CDI.QSecondGen;
import java.util.logging.Logger;
import javax.inject.Named;
import javax.enterprise.context.RequestScoped;
import javax.enterprise.inject.Default;
import javax.inject.Inject;
@Named(value = "person")
@RequestScoped
public class Person {
//инжекция через конструктор с использованием квалификаторов - инжекцием помечается конструктор, а квалификаторами - параметры если нужно квалифицировать точку инжекции
@Inject
public Person(@QSecondGen NumberGenerator generator2, @QGenWithMember(digits = Digits.TEN, odd = true) NumberGenerator generator3) {
this.generator2 = generator2;
this.generator3 = generator3;
}
//инжекция через поле
@Inject @QFirstGen
NumberGenerator generator1;
//инжекция будет через конструктор
NumberGenerator generator2;
NumberGenerator generator3;
//инжекция будет через сеттеры
NumberGenerator generator4;
NumberGenerator generator5;
private String firstName;
private String secondName;
private String thirdName;
private Integer age;
//инжекция через сеттер - тут можно прямо с квалификатором
@Inject @QSecondGen
public void setGenerator4(NumberGenerator generator4) {
this.generator4 = generator4;
}
//или квалификатор поместить в параметры сеттера
@Inject
public void setGenerator5(@QGenWithMember(digits = Digits.TEN, odd = true) NumberGenerator generator5) {
this.generator5 = generator5;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getSecondName() {
return secondName;
}
public void setSecondName(String secondName) {
this.secondName = secondName;
}
public String getThirdName() {
return thirdName;
}
public void setThirdName(String thirdName) {
this.thirdName = thirdName;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public String execConfirm(){
System.out.println("Инжектим в поле");
System.out.println(generator1.generateNumber());
System.out.println("Инжектим через конструктор");
System.out.println(generator2.generateNumber());
System.out.println(generator3.generateNumber());
System.out.println("Инжектим через сеттер");
System.out.println(generator4.generateNumber());
System.out.println(generator5.generateNumber());
return "showinfo";
}
}
|
Категория: Java EE |
Просмотров: 723 |
Добавил: alex
| Рейтинг: 0.0/0 |
|
Статистика |
Онлайн всего: 1 Гостей: 1 Пользователей: 0 |
Календарь | « Февраль 2016 » | Пн | Вт | Ср | Чт | Пт | Сб | Вс | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 |
|
|
|