2016-07-22 29 views
1

Ich möchte @ inject verwenden, um eine Bean zu injizieren, die einen parametrisierten Konstruktor hat. Während des Injizierens muss ich den Parameter an die Bean übergeben. Um es klar zu erklären.Java-Injektion - wie man eine Bean mit parametrisierten Konstruktor injizieren

Klasse A:

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; 
    } 

    .. 

    .. 

} 

Class B, wo bean der Klasse A hat zu injizierenden:

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); 
    } 

    .. 
    .. 

}

in der Klasse B, die Bohne A hat lokal genutzt werden in vielen Methoden. Ich hoffe, dass diese Code-Schnipsel helfen, mein Problem zu verstehen. Ich bin neu in Spring und Java Dependency Injection. Unsere Anwendung hat keine Spring-Abhängigkeit und daher ist @inject die einzige Möglichkeit, dies zu tun.

Vielen Dank im Voraus.

+0

Ihr A scheint ein Domain-POJO zu sein, es wird keinen Vorteil haben, ein Spring-verwaltetes Objekt zu erstellen. Warum instanziieren Sie es nicht über 'new'? – kryger

Antwort