2016-03-18 10 views
0

Ich versuche @Autowired in einer Liste zu meiner Bean Klasse zu verwenden. Scheint, Frühling setzt leere Liste. HierAutowire Liste der Objekteinstellung leere Liste

ist die Konfigurationsklasse:

@Configuration 
public class CommonConfig { 
    @Bean 
    public List<Pattern> support() { 
      List<Pattern> urlPatterns = new ArrayList<>(); 
      // Business logic 
      return urlPatterns ; 
    } 
    return urlPatterns; 
    } 
} 

Und die Bean-Klasse ist wie folgt:

@Component 
public class Support { 
    //@Resource(name="auditServices") 
    @Autowired 
    @Qualifier("support") 
    private List<Pattern> auditServicesMap = new ArrayList<Pattern>(); 
} 

Das Problem ist - ich fand die Liste leer ist, aber während der Bean Schöpfung sehe ich, dass Das ist nicht leer. Wenn Sie diese Liste mit einer Wrapper-Klasse automatisch starten, funktioniert sie gut. Jede Hilfe wird geschätzt.

+0

Könnten Sie bitte versuchen, @Configuration zur Support-Klasse hinzuzufügen? Und ich denke du kannst @Qualifier ("support") entfernen. – nnunes10

+0

Aber CommonConfig ist meine @Configuration-Klasse. Und Support ist die Bean-Klasse. – pijushcse

+0

Sorry, fügen Sie @Configuration nicht zur Support-Klasse hinzu. Entfernen Sie einfach @Qualifier ("support") und sehen Sie, ob es funktioniert. – nnunes10

Antwort

0

Sie müssen die auditServicesMap in der Support Klasse nicht initialisieren. Bean wird ordnungsgemäß erstellt, das ist nicht leer, aber nach der Bean-Injektion initialisieren Sie die auditServicesMap erneut auf eine leere ArrayList<Pattern>. Die Bean sollte wie folgt injiziert werden:

@Autowired 
@Qualifier("support") 
private List<Pattern> auditServicesMap; 
+0

Nun, ich Setter-Methode geändert, aber hat nicht funktioniert \t @Autowired \t public void setAuditServicesMap (List auditServicesMap) { \t \t this.auditServicesMap = auditServicesMap; \t} – pijushcse

+0

Probieren Sie @Resource (name = "support") und halten Sie den Autowire wie es ist. Bewegen Sie sich nicht in einer Setter-Methode. –

+0

Das Hinzufügen von @Resource Annotation hilft mir leider nicht – pijushcse

Verwandte Themen