2011-12-13 19 views
1

我有一個非常簡單的問題。但我找不到我錯在哪裏。我使用彈簧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

Service.class

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

回答

1

據我瞭解,春節沒有按2.0.2不支持以這種方式自動裝配bean的地圖。您可以使用ApplicationContextAwaregetBeansOfType()代替:

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