簡體   English   中英

如何自動接線圖

[英]How to autowire map

我有一個非常簡單的問題。 但是我找不到我錯了。 我使用spring 2.0.2。 我想使用Autowire設置Map myTasks的屬性,但是結果是myTasks = null。

我的代碼:在文件春天:

<bean id="Service" class="Service" autowire="byType"/> 
<bean id="FirstTask" class="FirstTask"/>
<bean id="SecondTask" class="SecondTask"/>

其中FirstTask,SecondTask擴展了MyTask

服務類

class Service{
  private Map<String, MyTask> myTasks;
  public Map<String, MyTask> getMyTasks(){return myTasks;}
  public void MyTasks(Map<String, MyTask> myTasks){this.myTasks = myTasks;}}

據我了解,Spring 2.0.2不支持以這種方式自動裝配bean的地圖。 您可以改用ApplicationContextAwaregetBeansOfType()

public class Service implements ApplicationContextAware {
    public void setApplicationContext(ApplicationContext ctx) {
        myTasks = (Map<String, MyTask>) ctx.getBeansOfType(MyTask.class);
    }
    ...
}

如何在Spring配置文件中聲明myTasks? 如果不確定,則可以使用util:map實現此目的

請參閱http://static.springsource.org/spring/docs/2.0.2/reference/xsd-config.html#xsd-config-body-schemas-util-map

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM