Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何自动关联地图_Java_Spring - Fatal编程技术网

Java 如何自动关联地图

Java 如何自动关联地图,java,spring,Java,Spring,我有一个很简单的问题。但我不知道我错在哪里。我使用Spring2.0.2。 我想使用Autowire设置Map myTasks的属性,但结果是myTasks=null 我的代码: 在spring文件中: <bean id="Service" class="Service" autowire="byType"/> <bean id="FirstTask" class="FirstTask"/> <bean id="SecondTask" class="SecondT

我有一个很简单的问题。但我不知道我错在哪里。我使用Spring2.0.2。 我想使用Autowire设置Map myTasks的属性,但结果是myTasks=null

我的代码: 在spring文件中:

<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;}}
类服务{
私有映射任务;
公共映射getMyTasks(){return myTasks;}
public void MyTasks(Map MyTasks){this.MyTasks=MyTasks;}}

据我所知,Spring2.0.2不支持以这种方式自动连接bean映射。您可以使用
ApplicationContextAware
getBeansOfType()
代替:

public class Service implements ApplicationContextAware {
    public void setApplicationContext(ApplicationContext ctx) {
        myTasks = (Map<String, MyTask>) ctx.getBeansOfType(MyTask.class);
    }
    ...
}
公共类服务实现ApplicationContextAware{
public void setApplicationContext(ApplicationContext ctx){
myTasks=(Map)ctx.getBeansOfType(MyTask.class);
}
...
}

据我所知,Spring2.0.2不支持以这种方式自动连接bean映射。您可以使用
ApplicationContextAware
getBeansOfType()
代替:

public class Service implements ApplicationContextAware {
    public void setApplicationContext(ApplicationContext ctx) {
        myTasks = (Map<String, MyTask>) ctx.getBeansOfType(MyTask.class);
    }
    ...
}
公共类服务实现ApplicationContextAware{
public void setApplicationContext(ApplicationContext ctx){
myTasks=(Map)ctx.getBeansOfType(MyTask.class);
}
...
}

如何在Spring配置文件中声明myTasks?如果您不确定,可以使用util:map来实现这一点


请参阅如何在Spring配置文件中声明myTasks?如果您不确定,可以使用util:map来实现这一点

提及