Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.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 在XML中按类型指定spring引用_Java_Spring_Spring Bean - Fatal编程技术网

Java 在XML中按类型指定spring引用

Java 在XML中按类型指定spring引用,java,spring,spring-bean,Java,Spring,Spring Bean,假设我有以下课程: @Service public class Foo { @Autowired private MySvcClass svc; } 如果我使用Spring的注释初始化,Spring将迭代它的所有bean,如果它有一个MySvcClass的实例,它将注入它。我不需要知道MySvcClass实例的名称,只需要知道它是MySvcClass的实例 如果使用XML而不利用注释,如何获得相同的结果 例如,通过xml定义可以如下所示: <bean id="f

假设我有以下课程:

@Service
public class Foo {

    @Autowired    
    private MySvcClass svc;
}
如果我使用Spring的注释初始化,Spring将迭代它的所有bean,如果它有一个
MySvcClass
的实例,它将注入它。我不需要知道
MySvcClass
实例的名称,只需要知道它是
MySvcClass
的实例

如果使用XML而不利用注释,如何获得相同的结果

例如,通过xml定义可以如下所示:

<bean id="foo" class="Foo">
   <property name="svc" ref="idOfMySvcClass"/>
</bean>


但这需要我知道
MySvcClass
实例的名称。Spring有没有办法使用与上面相同的逻辑,我只指定类型,Spring就会找到我的实例?

在xml中为bean元素添加autowire=“byType”属性。

在xml中为bean元素添加autowire=“byType”属性。

如果不需要知道bean名称,可以使用“autowiringbytype”

您的XML配置如下所示:

<bean id="foo" class="com.example.Foo" autowire="byType" />

<bean id="mySvcClass" class="com.example.MySvcClass" />

如果不需要知道bean名称,可以使用“按类型自动连接”

您的XML配置如下所示:

<bean id="foo" class="com.example.Foo" autowire="byType" />

<bean id="mySvcClass" class="com.example.MySvcClass" />

这样,所有依赖项都必须按类型连接,但是如果我只需要多个依赖项中的一个,那么所有依赖项都必须按类型连接,但是如果我只需要多个依赖项中的一个?