2016-07-22 2 views
1

Я хочу использовать @inject для вставки компонента, который имеет параметризованный конструктор. При инъекции мне нужно передать параметр в bean-компонент. Чтобы четко объяснить.java injection - как ввести компонент с параметризованным конструктором

класс А:

public class A{ 
    private String name; 
    private String id; 
    private int age; 

    public A(Student student){ 
    name = student.getName(); 
    id = student.getId(); 
    age = student.getAge(); 
    } 

    public String getName(){ 
    return Name; 
    } 

    .. 

    .. 

} 

класса B, где бобы класса А должен быть введен:

public class B{ 

    @inject private Student student; 

    //how to inject the below passing student value 
    @inject private A a; // new A(student); 

    public getNameAndAge(){ 
     String name = a.getName(); 
     int age = a.getAge(); 
     System.out.println(name); 
    } 

    public sendDetails(){ 
    sendInWebService(a); 
    } 

    .. 
    .. 

}

В классе В, компонент А должен быть использован локально во многих методах. Надеюсь, что этот фрагмент кода поможет понять мою проблему. Я новичок в инъекции зависимостей Spring и Java. У нашего приложения нет зависимости от Spring, и поэтому @inject - единственный способ сделать это.

Заранее спасибо.

+0

Ваш A кажется доменом POJO, не будет никакой пользы для создания объекта, управляемого Spring. Почему бы не создать экземпляр через 'new'? – kryger

ответ

Смежные вопросы