2016-03-18 8 views
0

私のBeanクラスへのリストで@Autowiredを使用しようとしています。 Springは空のリストを設定しています。ここでオブジェクト設定の空リストのオートワイヤリスト

は、コンフィギュレーションクラスです:

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

とBeanクラスは以下の通りである:

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

問題がある - 私は、リストが空で見つかりましたが、豆の作成中に私がいることを確認しますそれは空ではありません。あなたがWrapperクラスを使ってそのリストをAutowireすれば、うまくいくようです。どんな助けもありがたい。

+0

サポートクラスに@Configurationを追加してください。そして、あなたは@Qualifier( "support")を削除できると思います。 – nnunes10

+0

しかし、CommonConfigは私の@Configurationクラスです。サポートはBeanクラスです。 – pijushcse

+0

申し訳ありませんが、@Configuration to Supportクラスを追加しないでください。ただ@Qualifier( "support")を削除し、それが動作するかどうかを確認してください。 – nnunes10

答えて

0

auditServicesMapSupportクラスで初期化する必要はありません。 Beanは正しく作成されていますが空ではありませんが、Beanインジェクション後にはauditServicesMapを空のArrayList<Pattern>に再び初期化しています。このように注入する必要があります:

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

まあ、私はセッターメソッドに変更はなく \t @Autowired \t公共ボイドsetAuditServicesMap(リスト auditServicesMap){ \t \t this.auditServicesMap = auditServicesMapを動作しませんでした。 \t} – pijushcse

+0

@ Resource(name = "support")を試し、autowireをそのまま使用してください。どんなセッターメソッドでも動かさないでください。 –

+0

残念ながら@Resourceアノテーションを追加しても役に立たない – pijushcse

関連する問題