Ich versuche, eine Klasse in eine andere Klasse zu injizieren und während des Post-Konstrukts funktioniert die eingefügte Klasse wie erwartet und wenn ich versuche, diese Klasse in anderen Methoden zu verwenden, wird ein Nullzeiger ausgelöst.Spring Inject lädt Klasse nur während postConstruct
Wenn Sie den folgenden Code sehen, in meiner Service-Klasse sehe ich die Postconstruct-Methode druckt den erwarteten Wert aus der Karte. aber die Saidhello-Methode würde eine NPE werfen.
Was ist in der unten falsch ist (der Code wird nicht kompilieren ... wollte nur, dass auf einem hohen Niveau setzen)
@RestController
@Produces(MediaType.APPLICATION_JSON)
@RefreshScope
public class ServRes{
@Inject
ServiceFact service;
@RequestMapping("/test")
public Response helloWorld(){
Service myservice = service.getService();
myservice.sayHello();
}
Mein ServiceFact
@Named
public class ServiceFact{
public Service getService(){
return new Service();
}
Mein ServiceClass
@Named
public class Service{
private HashMap dict;
@Inject
Private DictLoader dicLoader
@PostConstruct
public void load(){
this.dict = dicLoader.getDict();
dict.get("1"); // prints 12212
}
public void sayHello(){
System.out.print(dict.get("1")); //throws NPE
}
}