Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/398.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 Spring3依赖注入和接口_Java_Spring_Configuration_Dependency Injection - Fatal编程技术网

Java Spring3依赖注入和接口

Java Spring3依赖注入和接口,java,spring,configuration,dependency-injection,Java,Spring,Configuration,Dependency Injection,下面是一篇文章中的一些代码,可以解释我的问题: 接口: package org.better.place public interface SuperDuperInterface{ public void saveWorld(); } 实施: package org.better.place import org.springframework.stereotype public class SuperDuperClass implements SuperDuperInterfa

下面是一篇文章中的一些代码,可以解释我的问题:

接口:

package org.better.place

public interface SuperDuperInterface{
    public void saveWorld();
}
实施:

package org.better.place

import org.springframework.stereotype

public class SuperDuperClass implements SuperDuperInterface{
     public void saveWorld(){
          System.out.println("Done");
     }
}
客户:

package org.better.place

import org.springframework.beans.factory.annotation.Autowire;

public class SuperDuperService{

       private SuperDuperInterface superDuper;

       public void doIt(){
           superDuper.saveWorld();
       }

       public void setSuperDuper(SuperDuperInterface superDuper) {
         this.superDuper = superDuper;
       }
}
我的问题是-如何在spring配置中配置bean?我不想使用
@Autowired
和其他注释

我猜是这样的:

<bean id="superService" class="org.better.place.SuperDuperService">
  <property name="superDuper" ref="superWorker"
</bean>

<bean id="superWorker" class=?????? parent=???????? >
</bean>


当然,您必须实例化实现类:

<bean id="superWorker" class="org.better.place.SuperDuperClass"/>

这将导致两个实例的
prop1
prop2
的值相同,但
prop3
的值不同,您只需给出实现类的完全限定名,而不需要给出
parent
属性。Spring将自动查找是否可以将
SuperDuperClass
的实例分配给
SuperDuperService
superDuper
字段

<bean id="superWorker" class="org.better.place.SuperDuperClass" >
</bean>


我看不出是什么让Spring在不使用
@Autowired
的情况下自动将
SuperDuperClass
实例注入到
SuperDuperService
中(OP希望避免)。除非您在xml中明确地说@Autowired或提到autowire,否则Spring不会自动连接。我试图在这里解释的是避免使用parent标记,因为spring将发现它是否可以分配实例,这就是我的意思。它们都不在问题的代码段中,所以我不明白为什么您会写“Spring会自动找到是否可以将SuperDuperClass的实例分配给SuperDuperService的superDuper字段”
<bean id="superWorker" class="org.better.place.SuperDuperClass" >
</bean>