2011-12-13 60 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); 
    } 
    ... 
}