Приветствую Вас ГостьВторник, 14.05.2024, 21:57

Программирование на Java, Android, Delphi


Блог

Главная » 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
Категории раздела
Java (Общие вопросы) [17]
Java (Библиотека, пакеты Java) [17]
Java (Разработка программного обеспечения на Java) [5]
Java (Среда разработки NetBeans) [5]
JSF + PrimeFaces [21]
Java EE [11]
Разное [3]
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Форма входа
Поиск
Календарь
«  Февраль 2016  »
ПнВтСрЧтПтСбВс
1234567
891011121314
15161718192021
22232425262728
29
Архив записей