我有一个带有添加方法的类“ Box”,该方法接受所有水果:

  public class Box {
        List <IFruit> fruits;

        public void add (IFruit fruit) {
             fruits.add(fruit);
        }
  }


我想用Spring的applicationContext.xml定义此类的单例实例,该实例将添加所有IFruits实现(这些实例出现在x.y.fruits包中,用于inst。x.y.fruits.Apple)。

第一部分很简单:

  <bean id="box" class="x.y.Box"/>


但是如何连接所有IFruit实例?

谢谢!

最佳答案

如果您使用@Autowire字段,则无需定义任何内容,Spring会在应用程序上下文中找到IFruit接口的所有实例并将其加载到其中。

public class Box {
    @Autowired
    List <IFruit> fruits; //This should contain all IFruit's in the ApplicationContext

    public void add (IFruit fruit) {
         fruits.add(fruit);
    }
}


当然,您需要将元素<context:annotation-config/>添加到xml配置中,以使@Autowired起作用...

09-25 21:37